Become a fan of Slashdot on Facebook


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 internet speed test! ×

Comment (Score 3, Interesting) 107

I recently bought my little sister, 9, a kano kit from It's like a build your own computer kit, just a raspberry pi with a case and color coded cables. It comes with a colorful instruction booklet like a LEGO set. It has some code-blocks like programming environment that walks kids through how to write simple programs. The code she showed me had her making full blown for loops and such. Rather than run your code and print to stdout, it would generate a scene in Minecraft. She told me that she asked a boy in her class who liked Minecraft, "how long would it take you to build a castle in Minecraft" and he said "about a day." She replied "well, I could do it in about 5 minutes, because I know how to program." That right there made it well worth the cost.

Comment Re:Assets never become free (Score 1) 480

Zenimax is enforcing copyright over a company they acquired, over games that were made before they were acquired. Id in fact released the source to Quake years before they were acquired. Not having the assets does make it difficult to build the entire game in a playable state, but the point of OSS is not that you entire product has to be free of charge, it's that what's running on your box is transparent.

Comment Re:Game development (Score 1) 480

Id Software did not issue that cease and desist, ZeniMax did. And that's over copyright. Mozilla enforces it's copyright over Firefox, that doesn't mean Firefox isn't FOSS. If the five years figure is accurate, it is somewhat disappointing, but also understandable to prevent competition. To me, released 5 years later is better than never.

Comment Dynamically Typed, Higher Level (Score 2) 387

Let me give you some advice, as someone who went to school for Computer Engineering (very aware of embedding programming) and now works for a major Internet browser vendor. C may have been considered high level back in the day, but relatively speaking is now one of the lowest level programming languages. While it's simple, and fast, it is verbose as hell to write anything useful. C's idea of portability is also bizarre, relative to modern higher level languages (autotools generates thousands of files). I love C, and it's my go to for lower level languages. I just cannot keep track of all there is to C++, it's like a dog that kept getting legs nailed to it until it was referred to as an octopus. C++ is a great language, but it's not for me. I have one lower level language that I'm expert in, and one higher level language that I'm expert in. Java, and C# in my opinion don't differentiate themselves enough from C (by design) as a dynamically typed language would.

That said, it's worthwhile to learn multiple different languages, even if you don't master them, because each one has something to teach you, will change how you think of programming, and make you more effective in programming with other languages as you can reuse interesting patterns. Seeing other people say "don't follow new trends" is disappointing; it's so close minded that it's sad to see that they've closed themselves off from learning new paradigms.

As far as higher level language is concerned, I'd recommend JavaScript. It's dynamically typed, which should be a new paradigm for you. Its loosely typed nature shouldn't be completely foreign to a C programmer (unless you don't understand C's implicit promotion and conversion rules). JavaScript is pervasive and you don't need an IDE for it (not like making an IDE for a dynamically typed language is trivial); just fire up your browser and you can play around with it. You'll find the web to be much more portable for your programs (though it's still not a perfect solution). JavaScript can also be used for the back end as well, with the Node.js runtime. Further, there are even higher level languages like TypeScript or, my favorite, CoffeeScript. CoffeeScript combines some of my favorite parts of Ruby and Python, but if you're not careful can generate some awful JavaScript (returning the evaluation of a for loop), but you can do the same with mistakes with C (generating awful assembly). JavaScript will also open you mind to functional programming, while not forcing it down your throat.

PHP was my first love, but many developers fail to recognize it as a language and think it's tightly bound to Apache. Ruby has some of the most mind bending metaprogramming features, but the performance pails in magnitude to modern JavaScript VMs. Python's community has a split that I see as detrimental between 2.X and 3.X, but has some great features of the language. I'm really not sure what differentiates Perl anymore, as its regex functionality has been borrowed by Python, Ruby, and JavaScript. Lua might be useful in place of JavaScript, as it's embeddable within C projects and is used frequently in scripting game engines (so I would recommend that, or JavaScript). That said, I have learned something useful from all of the above, and am glad I took the time to learn more about them, even if I did not choose to master them.

For my senior design project, I used C in an embedded device, as well as CoffeeScript to receive info and display it via a web interface. It was awesome to have such fine grain control of the bits when I needed, and the ability to create a Hash with a literal when needed. That's why I recommend on mastering one low level and one high level language.

For a quick intro I gave recently on JavaScript: For more on C and JavaScript: http://nickdesaulniers.github....

If you don't agree that higher level is the way to go, Rust has an interesting new approach to systems programming, even if the APIs change every (still in beta) release.

Slashdot Top Deals

You scratch my tape, and I'll scratch yours.