Shane wrote:
My languages:
- C
- C++
- Java
- PHP
- Lisp
- Prolog
- MIPS Assembly
- JavaScript (should this be here?)
- Bash
I've included all the languages, even if they aren't languages that have to be compiled. I've also dabbled in a bit of Python *cough*Mumble*cough*
It's a bad idea to get into a habit of thinking that a certain language is just plain bad. Each language has it's own use case, some are better at some things than others. For example, I say VisualBasic is a bad language to start learning with because it most people will go online, find a tutorial, and use the interface builder to "program" their first application. Interface builders usually make bad code and don't teach you nearly as much about a language as if you were to code by hand. Another reason why I don't recommend VB is because if you have any intention of taking higher level computer science or pursuing a career in it, VB can set you up with some bad habits. With this being said VB is fine if you want to make something just for the heck of it (preferably by hand) or if you are integrating with Microsoft Office. On the other hand it would be absolutely crazy to write a GUI using C in Windows, OS X, or Linux when there are so many better options. At the end of the day, think of the programming language as the tool to express yourself just as you do when you write an essay using the English language. With this there will be better use cases for each language.
Here's what I'd use the languages I've highlighted:
- C: Permanent system tools or low level program backends.
- C++: Cross platform GUI's with the QT framework or a backend that needs some modern features that has to be portable.
- Java: Programming fundamentals, good coding practice, object oriented education.
- PHP: For me pretty much anything that needs to be accesible by a user on a web server. RSBandB uses this.
- Lisp: Pattern matching, maybe a parser? Haven't used it since I left my non-procedural language course.
- Prolog: Mathematical programming, constraint logic programming. Once again this was from the non-procedural language course I took.
- MIPS Assembly: Used in a class of mine for teaching hardware architecture and low level programming.
- JavaScript (should this be here?): Dynamic web front end implementations.
- Bash: Quick, maybe one time use *nix tools.
This year I plan to take on Objective-C (Mac programming) and maybe C# if there's time.
Do you currently have a job that involves coding? Or are you still looking for one. If so, what type of career?