View Single Post
  #7   Spotlight this post!  
Unread 20-05-2010, 09:12
slavik262's Avatar
slavik262 slavik262 is offline
We do what we must because we can.
AKA: Matt Kline
FRC #0537 (Charger Robotics)
Team Role: Alumni
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Sussex, WI
Posts: 310
slavik262 is a splendid one to beholdslavik262 is a splendid one to beholdslavik262 is a splendid one to beholdslavik262 is a splendid one to beholdslavik262 is a splendid one to beholdslavik262 is a splendid one to beholdslavik262 is a splendid one to behold
Send a message via AIM to slavik262
Re: Can I Make Something Clear?

Quote:
Originally Posted by davidthefat View Post
I believe that the WPILib is more than enough generic but more than enough to pull off an autonomous mode of this magnitude. Well IDK about you, but I feel way more accomplished if I do it from scratch. I rather program from scratch using OpenGL than use Irrlicht or Ogre3d or other stuff... Builds character
Like apalrd, I was going to stay out of this ridiculous flame war, but the asininity of the above statement got to me.

First of all, FIRST is about teaching practical lessons that you can use to drive the future. You'll find that this "builds character" bit doesn't exist in the professional world. Business respects results. If your co-worker (let's call him Bob) can code something in half or even a quarter of the time you can because he used a library or something higher-level than you, your boss won't care if you are "building more character" than Bob by doing it from scratch. Bob will get the contract/raise/promotion every time. Why? Results matter, and time is money. You don't just have to work hard, you have to work smart.

Secondly, doing everything from scratch is just masochistic. This is coming from someone who used to be like you - I used to want to do everything from scratch - I was convinced my "from scratch" code would run faster and better than any library I found. But re-inventing the wheel every time has a serious cost. Try to do anything significant without a library and you'll spend ludicrous amounts of time just getting to the point where you've re-coded what the library does and are actually ready to begin what you set out to do in the first place.

I decided a few months back that I wanted to make a video game, and decided first that I'd make my own DirectX engine. Luckily, a friend of mine, who is a professional game developer, stopped me ahead of time and told me that if I wanted to make an engine, I should make an engine, but if I wanted to make a game in any useful amount of time I should use a pre-existing game engine. I went with Irrlicht, and things have been going great ever since. You know what, though? Even with an engine, you have a lot of coding to do. Thousands and thousands of lines. Your proposed AI project will be no different - coding anything useful takes a lot of code. Have you ever looked at the source of a game engine? Open up the Irrlicht source and you'll find thousands upon thousands of lines. Why would you put that additional burden on yourself? As elitist as we programmers like to be, good libraries and engines are well-thought out and coded for the most part, and you're a fool if you don't take advantage of all the painstaking work someone's already done to help you. There's a reason professional 3D graphics and audio engines are valued at thousands of dollars per license - if they weren't that valuable to other developers, they wouldn't sell at that high of a price.

Your response to this over and over, David, has been that you want to do these things for your education. Look at the posts in this thread. There are professional engineers and mentors from all over the country trying to save you from yourself. We're not trying to discourage you - we're trying to help you and teach you a very valuable lesson. Most of us have been down this road before. I've had to learn the hard way why to use pre-existing code when I became overwhelmed several thousand lines into a project. I was convinced I could make a better MFC. You don't realize the enormity of a project until you really start coding.

My code mentors once told me, "A good programmer can look at a library, decide he hates how it's implemented, and re-code everything from scratch. A really good programmer can look at a library, decide he hates how it's implemented, but realize the time it will save him and learn to use it."
__________________

Last edited by slavik262 : 20-05-2010 at 14:59.