Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: What Language Should a Former Coder Dig Into?

samzenpus posted more than 2 years ago | from the getting-your-chops-back dept.

Programming 530

An anonymous reader writes "I was a consultant for nearly 20 years and I got into projects where I had to work with a huge variety of software, operating systems, hardware, programming languages, and other assorted technologies. After retiring from that I have spent the last 10 years in a completely different sector. Now I find myself wanting to really focus on coding for personal reasons. You can imagine how out-of-touch I am since I never really was more than a hack to begin with. I can learn syntax and basics in a weekend, question is, what Language should I become native to? Never liked anything 'lower-level' than C, and I don't have the funds to 'buy' my development me Slashdot, you're my only hope."

Sorry! There are no comments related to the filter you selected.

Python (5, Insightful)

protactin (206817) | more than 2 years ago | (#39910851)


Re:Python (0)

Anonymous Coward | more than 2 years ago | (#39910883)

Agreed, great language and libraries.

Re:Python (-1, Troll)

Anonymous Coward | more than 2 years ago | (#39911011)

The engineering school of my institution used to require "An Introduction to Object-Oriented Programming with Python" as the minimal programming course. Unfortunately python screwed over the minds too many kids who had already taught themselves C++/C/Z80 assembly. They became unable to program even the simplest assignments. The engineers switched over to MATLAB/Octave, which still encourages bad habits, but at least the kids can solve problems via simple programs. Python is the Europeans attempt to handicap American programmers enough to make them useless. A plague of dwarfs on Van Rossum's house.

Re:Python (0)

Faisal Rehman (2424374) | more than 2 years ago | (#39910909)

Agree - python is every where

Re:Python (-1)

Anonymous Coward | more than 2 years ago | (#39911001)

How comical! How comical!

You claim to be a programmer, but your Gamemakerlessness proves otherwise! You're not a True Programmer unless you use Gamemaker! Wow! You're just a piece of garbage! I would crumple such absolute garbage cheeks up and toss them directly into the dumpster upon sight!

Get out of my way! I can't even believe that there exists people who don't use Gamemaker...

Windows, Youtube, Facebook, assembly... it's all coded in Gamemaker.

Return to Gamemakerdom!

Re:Python (1)

Anonymous Coward | more than 2 years ago | (#39910913)

I've just been looking at a language to use for new applications. We've also concluded that python makes sense unless you really need to low-level control of the hardware that you can get from C. We had been using Java. I'm pretty convinced that Java greatly increases the amount of time needed to code. Most groups around my university seem to be using Python as well, though most of the long-lived projects in the "glass house" (one of which I'm involved in) will stay in Java at least for now.

Python has been around a long time, has a good user community and thus a good "ecosystem", is vendor-neutral, and has no obvious problems that would make it take more work coding or maintaining the other languages.

Beware of dynamic languages for large projects. (3, Insightful)

Anonymous Coward | more than 2 years ago | (#39911013)

Python, Ruby, Perl and their ilk are very useful for throw-away scripts, and even small applications. But beware if you're thinking of using any dynamic language for anything beyond a small application, especially if there'll be more than one or two developers working on it at any given time.

When working on larger projects, especially involving many developers, any time saved due to the capabilities of dynamic languages will be lost debugging problems that the compiler would've caught when using Java, C#, or C++.

Some people (especially Rubyists) will claim that these kind of bugs won't happen. They will, and they can be costly. This cost increases significantly as the program size increases, and as the team size increases.

Automated unit tests aren't the answer, either. You'll soon find that 90% or more of your unit tests are merely implementing checks that the Java compiler, for example, would've taken care of automatically. Again, like the debugging problem, this isn't an effective use of time.

You and your team may see some initial time savings when switching to a dynamic language, but there's a significant long-term cost that you need to consider, too. Something that would've taken an hour in Java may only take 15 minutes in Ruby, and another 15 minutes writing unit tests. But you'll find yourself spending well over 30 minutes debugging a problem involving this code at some points, usually due to a completely unrelated change. Meanwhile, a similar issue with equivalent Java code would've been caught by the Java compiler on the developer's system, well before the code ever was committed to whatever source control system the team is using.

And like I warned earlier, there will be people who claim that such problems "won't happen in practice". Chances are that these people have only worked on some small Ruby on Rails websites alone, or maybe with one other person. Had they worked even for a week with a 300 developer team, or even with a 10 developer team, all working on the same code base, they'd soon realize that such problems happen much more frequently when using dynamic languages than when using more static languages.

Re:Beware of dynamic languages for large projects. (4, Informative)

rubycodez (864176) | more than 2 years ago | (#39911161)

Nonsense, you are talking out of your ass. huge projects have been done in all the languages you name. there are web pages devoted to list huge projects in each one

Re:Beware of dynamic languages for large projects. (-1)

Anonymous Coward | more than 2 years ago | (#39911217)

ruby fagfanboi go suck steve apple jobs deteriorating cock

Re:Beware of dynamic languages for large projects. (5, Funny)

Anonymous Coward | more than 2 years ago | (#39911313)

Right on! You are totally correct about all languages being equal. That's why all our largest projects are done in COBOL. Since that's the only language we're comfortable with, it just makes sense to use it for everything from throwaway scripts to enterprise software and shrink-wrapped products.

Re:Beware of dynamic languages for large projects. (5, Funny)

Anonymous Coward | more than 2 years ago | (#39911333)

You must be one of the Ruby nuts that the GP warned about. I've had to interview a bunch of them recently. Apparently they can't find any work using Ruby, so they've been applying for the C++ jobs that I have open at the moment. I seriously can't believe how some of them behave. One of the first guys I interviewed wouldn't take off his fedora, wouldn't shake hands with anyone, and openly admitted that he wouldn't work with any of our female developers and testers for some reason. Another guy refused to use C++, while interviewing for a C++ programmer position! During his interview, we asked him to write some small sample programs in C++, but he turned in some Ruby code, and told us it was "more efficient" or some bullshit like that. The rest usually don't even get that far. Some of them don't even know what the STL or Boost are! I could easily see these guys considering a 4,000-5,000 line web app as being a "huge project".

I agree - Python (1)

kawabago (551139) | more than 2 years ago | (#39910915)

Python is hugely versatile, you can easily port C routines into Python. It's free and open source, what more could you ask for? I haven't used it but the IBM backed open source Eclipse IntegratedDevelopmentEnvironment seems to be very popular.

Re:Python (0)

Anonymous Coward | more than 2 years ago | (#39910929)

Yup. I code professionally with C and C++, because it's a bunch of embedded systems programming, but whenever I'm working on something other than my job I use Python. It constantly amazes me how much bullshit I don't need to deal with with Python, and how it never seems to bite me in the ass the way C++ does.

Re:Python (0)

Anonymous Coward | more than 2 years ago | (#39910969)

The nice (and impressive) thing about Python is that it is like typing in pseudocode which just works.

Python and ActiveState's Komodo Edit (2)

skyhawker (234308) | more than 2 years ago | (#39911127)

I agree with Python, and be sure to check out ActiveStates's Komodo Edit [] as your development environment.

Re:Python (1)

Ogi_UnixNut (916982) | more than 2 years ago | (#39911253)

Agreed whole-heartedly! First language I learnt when I came to Linux, and the one that I always come back to if I want to program for fun, or need a quick script/mockup (it is however also good for proper, large software projects). Hugely flexible and fast to develop in, with nice C bindings if you need to do some specialist stuff.

Brainf*ck (3, Informative)

greywire (78262) | more than 2 years ago | (#39910853)

Re:Brainf*ck (1)

cupantae (1304123) | more than 2 years ago | (#39910901)

I like the way you censored yourself in the subject and then were forced not to in the URL.

Re:Brainf*ck (1)

greywire (78262) | more than 2 years ago | (#39911059)

Yep. I thought that was funny too.

Re:Brainf*ck (4, Interesting)

cupantae (1304123) | more than 2 years ago | (#39911297)

I'm genuinely sorry. Reminds me of school days, where some idiot would take my joke, make it louder and worse, and everyone would laugh.
Now that's me.

Re:Brainf*ck (-1, Offtopic)

BootysnapChristAlive (2629837) | more than 2 years ago | (#39910907)

Pathetic. You're a pathetic loser.

That's why you need to switch to Gamemaker. Gamemaker will fix your pathetic self right up! Use Gamemaker, you fuckin' nothingness ultimatum!

Re:Brainf*ck (1)

ClickOnThis (137803) | more than 2 years ago | (#39910963)

Oh man. And I thought Markov Algorithms [] were hell to read.

Re:Brainf*ck (1)

Anonymous Coward | more than 2 years ago | (#39911237)

If you want a hard to read language you should check whitespace language []
For something more colorful Piet [] is the obvious language.

Re:Brainf*ck (1)

thebeige (2555996) | more than 2 years ago | (#39911081)


re (5, Funny)

Anonymous Coward | more than 2 years ago | (#39910857)

" me Slashdot, you're my only hope."

You're screwed.

Why do people ask questions like these? (1)

Anonymous Coward | more than 2 years ago | (#39910935)

Why do people who claim to have 20+ years of software development experience always seem to ask these sorts of questions? Why can't they take some initiative and try out a few modern languages for themselves, without asking which ones they should try?

Seriously, they've probably heard of anything that'll be remotely useful. There's been a lot of "buzz" around Ruby, Python and JavaScript lately. So those are the languages that people here will (and already have, based on the some of the comments) suggest trying out. It's not necessary to ask Slashdot, or Stack Overflow, or any other community about them.

Re:Why do people ask questions like these? (4, Funny)

cupantae (1304123) | more than 2 years ago | (#39911007)

in a completely different sector

OP said he [she?] has been in a completely different sector [] . Who knows what the technology is like there?

Re:Why do people ask questions like these? (0)

Anonymous Coward | more than 2 years ago | (#39911029)

He's a consultant, asking stupid questions and getting other people to do everything for them is what they DO.

Re:Why do people ask questions like these? (-1)

Anonymous Coward | more than 2 years ago | (#39911207)

Thanks for your understanding young one. I WAS a consultant, NEVER was a 'programmer', haven't TOUCHED programming for over 10 years ALL of which was in my original post if you'd set aside your foul attitude you could've, oh I dunno, maybe figured the answer to your question. Thanks for all your assumptions..I don't need your help.

To be sure, I DON'T WANT TO SPEND THE TIME doing a proper survey because I don't HAVE the time right now.

I am a hobbyist looking for direction, nothing more.

And damn if my login didn't timeout before I posted this and showed up as Anonymous, I just made my account and this was my first post.

Are you trolling me or just an ill-tempered holier than thou star-bellied sneech?

Re:Why do people ask questions like these? (5, Informative)

JWSmythe (446288) | more than 2 years ago | (#39911143)

    Because they don't want to say "I'm a noobie, what should I code in?"

    If he was a seasoned programmer, he would have included little tidbits like what he intended to do, and what his experience was.

    Web page? PHP.
    High load gaming? a flavor of C.
    3d gaming without reinventing the engine? Whatever that engine needs.
    Phone apps? Java.
    Simplify how his Linux machine boots? Bash.
    Some new hardware that he just invented? Probably assembly.
    "Hello World"? Any language he'd like.

    I started real development with Perl. I've mostly moved away from it, but there are still a few things that I need the Perl modules to do, that are difficult to find good interfaces anywhere else.

Re:Why do people ask questions like these? (5, Informative)

wazafoojitsu (2633011) | more than 2 years ago | (#39911293)

As I noted in my post I never was a seasoned programmer, I was a total hack, aw hell you guys prolly don't even know what a hack is, you probably think I had an area of expertise too. I HACKED SHIT TOGETHER and got PAID! I learned whatever I needed to know to accomplish what others couldn't. I probably forgot more about the languages I've used than most 'experts' know of any single language. I couldn't possibly have listed all the languages and technologies I have done work with. But here's a sample.... BASIC, C, Pascal, Ada, COBOL, Perl, CGI, vbscript/asp, scripting (*ux shells mostly), VB, most recently PHP. I am only interested in general purpose work, utilities, hell I don't even know yet exactly where I will go with this. I was hoping for some informed guidance and expert advice but maybe slashdot isn't what it used to be...

Re:re (1)

cupantae (1304123) | more than 2 years ago | (#39910989)

It's Princess Leia. OP thought to gain our most sincere recommendations by first forming a nerdish bond.

Instead, I just feel silly for knowing the reference :(

Re:re (1)

epine (68316) | more than 2 years ago | (#39911171)

OP thought to gain our most sincere recommendations by first forming a nerdish bond.

No, the purpose of the reference is A) to mock the epic futility of his quest in his advanced state of neurological senescence, and B) to sufficiently date himself that half the Facebook generation goes "huh" with the effect of doubling the signal to noise ratio on answers he can seriously consider pursuing.

Re:re (1)

wazafoojitsu (2633011) | more than 2 years ago | (#39911315)

Finally a voice in the aethers I can hear, thank you.

Development environment (2)

Lord Lode (1290856) | more than 2 years ago | (#39910869)

Don't worry, I can't think of many languages that for which you need to 'buy' a development environment.

Want to do frontend stuff? JavaScript, etc... Your dev environment is a good JS debugger in a browser.

C/C++: Do those in Linux for best ease of use (compiler and debugger come with the OS)

Java: Eclipse, or IntelliJ's open source edition?

I think even C# can be developed with a free editor...

Re:Development environment (-1, Offtopic)

BootysnapChristAlive (2629837) | more than 2 years ago | (#39910919)

Wow! Wow! Wow!

The dangerously high magnitudes of Gamemakerlessness you're exerting from your cheeks is simply astounding!

Return to Gamemakerdom, friend!
Return to Gamemakerdom, friend!
Return to Gamemakerdom, friend!
Return to Gamemakerdom, friend!

Time to use Gamemaker! You want to hip & cool, don't you? Then fuckin' use Gamemaker!

Re:Development environment (5, Informative)

PlastikMissle (2498382) | more than 2 years ago | (#39911057)

Yes. C# (VB.NET and C++ as well) has the free Visual Studio Express from Microsoft. While it doesn't officially support Python, it does become a very good Python IDE by using the equally free (and unimaginatively named) Python Tools for Visual Studio.

Re:Development environment (1)

wazafoojitsu (2633011) | more than 2 years ago | (#39911329)

Awesome, more great advice, thanks and appreciation!

Your answer (5, Insightful)

Anonymous Coward | more than 2 years ago | (#39910873)

Forgive me for sounding rude, but to give you advice about what languages to get into, without giving even a hint what you're trying to create, is ridiculous.

Languages have evolved around their purpose. No purpose, no advice.

Re:Your answer (1)

lightenergy (2597715) | more than 2 years ago | (#39910991)

You are not being rude. This person isn't asking the right question. I think that they are just farting around.

Re:Your answer (0)

Anonymous Coward | more than 2 years ago | (#39911109)

You are not being rude. This person isn't asking the right question. I think that they are just farting around.

It's a trick by the gamemaker trolls in order to spam their nonsense.

Captcha: shaved.

C! (0)

Anonymous Coward | more than 2 years ago | (#39910875)

C of course! Then start hackin' on some kernel code to test your skill ;)

Seriously though; you say you don't want to go lower then C, well C is still extremly popular and you can do pretty much anything you like with it.

Re:C! (0)

Anonymous Coward | more than 2 years ago | (#39910955)

The author put quotes around 'lower-level'. I wonder if he or she knows what they are saying (high level languages vs low level languages). Is the author trying to say he or she doesn't like assembly (pretty much the only thing lower level than C except maybe machine code or flipping switches)?

Re:C! (1)

rubycodez (864176) | more than 2 years ago | (#39911107)

Forth can be considered a low level language too, yes operating systems have been written in Forth.

Re:C! (0)

Anonymous Coward | more than 2 years ago | (#39911147)

... and what fun it was to crash the OS with an FP error by typing "1 0 /" on the command line, those were the days

Re:C! (1)

rubycodez (864176) | more than 2 years ago | (#39911283)

nope, you get a "throw" which you can test for

Re:C! (1)

spiffmastercow (1001386) | more than 2 years ago | (#39911275)

I'd argue that FORTRAN is lower level than C, since its syntax is built around the assembly language of an early computer.

PHP (5, Funny)

schroedingers_hat (2449186) | more than 2 years ago | (#39910881)

It's clean, elegant. Has consistent, well thought out syntax, is easy to debug (PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM) and is secure by default.

Re:PHP (0)

outsider007 (115534) | more than 2 years ago | (#39910965)

Php is many things. Clean and elegant are not among them.

Re:PHP (0)

Anonymous Coward | more than 2 years ago | (#39910993)


Re:PHP (1)

Prosthetic_Lips (971097) | more than 2 years ago | (#39911065)

I believe that was sarcasm:
:: clean, elegant - um, not so much.
:: consistent, well-thought out syntax - again, nope.
:: easy to debug - he gave a great example of how the error messages are complete garbage
:: secure by default - see how he keeps escalating the humor?

Pure comedy genius. Right up there with Craig Ferguson!

Re:PHP (0)

Anonymous Coward | more than 2 years ago | (#39911083)

look up! [] , something just shot waaaay over your head.

What do you want to hack? (1)

countach (534280) | more than 2 years ago | (#39910885)

What do you want to hack or work on? If you want to write Mac or iPhone apps, you should learn objective-c. If you want to do the web, then javascript. If you want something nice and general purpose and useful in various scenarios, Java's a good choice. If you want to dazzle yourself with interesting algorithms and programming techniques, try one of the computer science type favourites like Lisp, Scheme, ML or such.

For personal reasons? (2)

gman003 (1693318) | more than 2 years ago | (#39910887)

If this is for your own, personal use, I can only recommend that you take a week or two (or a month, if you like) and try out as many new and interesting languages as you can, then decide for yourself which of them you liked best. There's literally dozens of languages people will recommend, and very few of them are going to be "wrong".

Some half-truths and prejudices (5, Interesting)

Anonymous Coward | more than 2 years ago | (#39910891)

Best all-around: Python

Best for enterprise work: Java

Best for OS dev, e.g. device drivers: C

Best for system programming above OS, e.g. database internals: C++

Best for game programming: C++

Best for financial apps: C#

Best social networking startup interview: Ruby

Best for web dev: JavaScript

Best for bioinformatics: R, SAS

Re:Some half-truths and prejudices (2)

ClickOnThis (137803) | more than 2 years ago | (#39911099)

Best all-around: Python

Best for enterprise work: Java

Best for OS dev, e.g. device drivers: C

Best for system programming above OS, e.g. database internals: C++

Best for game programming: C++

Best for financial apps: C#

Best social networking startup interview: Ruby

Best for web dev: JavaScript

Best for bioinformatics: R, SAS

Although Perl gives me a splitting headache, I think it deserves an honourable mention somewhere in this list (bioinformatics and web dev?) or maybe in a category of its own.

Also, some missing categories:

Best for numerical analysis and simulation: C/C++ (nowadays), Fortran (once upon a time, still has some holdouts)

Best for scientific visualization: Matlab (not free) or Octave (free), IDL (not free)

Best for mathematics: Mathematica (not free), Maple (not free), various freeware options

That's all I can think of at the moment. I invite others to augment/modify the above.

Re:Some half-truths and prejudices (4, Informative)

elashish14 (1302231) | more than 2 years ago | (#39911291)

Best for numerical analysis and simulation: C/C++ (nowadays), Fortran (once upon a time, still has some holdouts)

Best for scientific visualization: Matlab (not free) or Octave (free), IDL (not free)

Python deserves some mention in both of these categories as well. Numpy/Scipy are outstanding tools which can easily replace Matlab and Octave. Namespace hierarchies and OO implementation aren't necessarily the highest priorities for simulation, but when they are, Python kicks the pants off Matlab. Pylab has also fit all of my needs for plotting, though I have never really used it for anything too serious and it still isn't Python3 compatible.

For numerical analysis and simulation, you can always write Python wrappers for your low-level C and Fortran libraries.

Another consideration to keep in mind for these types of projects is that if you're gonna run them on a supercomputer, you can damn near guarantee that Python will be available on it while Matlab probably will be, but will require a bitch of dealing with license matters.

JavaScript (0)

Anonymous Coward | more than 2 years ago | (#39910897)

You should definitely learn HTML, CSS, and JavaScript. Get them down cold and then learn SQLite, a limited subset of SQL that will be available on webapps, desktop apps using AIR, native applications on iPhone and Android, etc. etc.. Here's why:

Adobe AIR -- build desktop apps using HTML/CSS/JavaScript, uses sqlite for databases. Apps work on Windows & Mac desktops.
NodeJS -- build slick event-based and asynchronous network applications on a Linux platform.
PhoneGap -- code cross-platform mobile apps!

Honestly, this stuff is all just plain too cool to ignore.

you should learn C++ and a scripting language (0)

Anonymous Coward | more than 2 years ago | (#39910903)

It's one of a very few languages that lets you efficiently target the hardware at a machine-cycle level while still allowing some measure of high level constructs with stl and boost containers, templates and so on. It has bindings to everything under the sun, such as operating system internals, OpenGL or DirectX, and so on. Supporters of certain other languages like to trot out little canned examples where that language can compete with the performance of C++, but they're just that: little canned examples. Look at real projects, say, modern game engines - it's a C++ world, because it can be screaming fast and interfaces well to DX and GL. It is statically typed, so it doesn't have the issues that languages like Python have in this area. Writing a compiler, for almost any other language? Chances are you'll be doing it in C++.

Then, for things that don't need that level of performance, you should pick up some scripting language, of which there are many choices. They're good for banging out little things on an ad-hoc basis where their performance isn't a major factor.

C or Java (5, Insightful)

phantomfive (622387) | more than 2 years ago | (#39910905)

C and Java are the leading languages by a lot of measures right now. C will easily get you a job, you'll get back into it easily because you already know it, but you'll have to learn how to write code without leaking. Java is a fine language, but the number of enterprise libraries you have to learn can feel overwhelming. C# can get you a job if you want live in Microsoft world, and it's designed to be easy to pick up.

Really I'd say focus on what you want to do, then learn what language is popular in that area. Embedded? Learn C. Enterprise code? Learn Java. Games? C++. If you want to do general scripting, learn Python. If you want to write web apps, focus on Javascript, and learn a bit of Java/Python/PHP/Ruby (choose your favorite, Ruby is fun) to figure out the server side. Choose one database (oracle/MySQL/Postresql) to start out with, the knowledge will transfer to the others. Figure out what you want first, then choose a language that will support it.

Re:C or Java (1)

Anonymous Coward | more than 2 years ago | (#39911103)

It sounds like he's doing this in his spare time, so I'd base it largely off of what platform he's running, what gets him a good free IDE, and aim for something where he can build up user applications pretty quickly. His IDE is going to shape so much of how he works, and which particularly failures in it are going to cost him extra time. My experience has been mostly with JBuilder, XCode and Visual Studio, but the problem I have in recommending the latter is that I don't know what the free version of it is like and I never used the GUI-oriented APIs on Windows. If those are both fine, then he at least has Java, Objective-C, and C# to choose from, and I really don't think he'd go too wrong with any of them.
No language is perfect and no language is going to make him a master of every programming situation. I would heavily, heavily recommend avoiding flavor of the day languages and avoiding the kitchen sink aspects of mainstream languages that have become so trendy -- e.g., It's object-oriented! And procedural! And functional! And it's also a floor wax, and a dessert topping! -- but at the same time I'd recommend that after he becomes very comfortable in either C or some type of object-oriented language, he tries switching over to something built in a different way from the ground up, such as a functional language.

Ruby (4, Interesting)

Anonymous Coward | more than 2 years ago | (#39910917)

I'm pretty much in the same boat as you, trying to revive a career that I once had but spent the last 15 years removed from coding. I looked around a lot and asked a bunch of people stuff. I have chosen Ruby because it looks like it's strong, gaining popularity, and has a big demand in jobs right now. It seems everybody and their brother already knows Python and the PHP framework, so you'll get a lot of 'be one of us' posts, but I recommend you figure out your goal, besides just personal hobby stuff which you can do in any language. Looking for employ-ability? You might find what I did, that Ruby, then Ruby on Rails will be a good fit.

Re:Ruby (3, Insightful)

BitterOak (537666) | more than 2 years ago | (#39910981)

I second that. If you want to learn a new language now, Ruby is the way to go. It just makes it so easy to do object oriented programming properly. (In that sense it's the polar opposite of C++). So, Ruby is a great all purpose language, and for speed critical work, just use C.

What Language Should a Former Coder Dig Into? (-1)

Anonymous Coward | more than 2 years ago | (#39910927)


Why is the truth modded down? (0)

Anonymous Coward | more than 2 years ago | (#39911299)

Oh, that's right. You can't handle the truth.

Put your heads back in the sand. By the time you wise up, it will be too late.

Don't say you weren't warned.

Consulting Background? (0)

Anonymous Coward | more than 2 years ago | (#39910933)

As a consultant with 20 years of experience, there is only one language you should consider ABAP. Everything else, especially python is a toy.

Don't ask what language (1)

stox (131684) | more than 2 years ago | (#39910937)

Ask, "What do I want to accomplish?" Then figure out what tools are best to do so.

Re:Don't ask what language (1)

Seriman (775126) | more than 2 years ago | (#39911197)

This is the answer. Anyone with sufficient aptitude to ask the question can pick up syntax and basics in a weekend, so determining strengths and weaknesses against ultimate goals is the only way to narrow down the broader answer, 'All of them.'

My outdated list (1)

Dun Kick The Noob (904001) | more than 2 years ago | (#39910941)

Heres my outdated list, still getting to grips with this list
Drivers or os layer : C, C++
Scripting : bash, python, perl
Applications : Visual Basic, Java, XML, tcltk, gtk
Web : HTML 4+5 Javascript, jsp PHP
Databases : mysql, mssql, sqlite
IDE : Eclipse, visual studio express
Others: haskell, matlab, opengl
Servers: tomcat, apache

Re:My outdated list (0)

Anonymous Coward | more than 2 years ago | (#39910971)

The fact that you included VB on this list automatically invalidates it. VB is not a programming language, it's a crime against humanity.

Re:My outdated list (1)

rubycodez (864176) | more than 2 years ago | (#39911145)

you can get a paying job easily knowing VB, shitty as it is. If you're an expert of a "cool" language, you might be going hungry during a recession. If you want higher pay, learn Java/J2EE, shitty also but it pays.

Python? (1)

cupantae (1304123) | more than 2 years ago | (#39910949)

It's easy, high-level, quick to write practical programmes in, platform-neutral and has an active community. Generally speaking, a lot of people who are handy with computers and do a bit of programming for fun or personal reasons like it.

anything 'lower-level' than C

OK, so that rules out assembly... and, em... Fortran? Pascal?
Not great as pretty much the only specifics you've given. I took it that you don't like low-level languages.

Perl (1)

Anonymous Coward | more than 2 years ago | (#39910957)

Perl is really easy to pick up. You don't even have to learn the syntax; just pick one, and it probably works.

Obligatory (0)

Anonymous Coward | more than 2 years ago | (#39910985)

You must go to the Dagobah system.

For a good time... (1)

SubtleArray (2633093) | more than 2 years ago | (#39910995)

If you want something that's fun and easy to use, but don't care about performance, I recommend Python. Python can be made faster when compiled for JVM with Jython, but this only works with Python 2.x. If you like wordy languages where "everything is an object!", try Java. It sucks for desktop applications, but runs great on Android devices. If you're feeling adventurous and like headaches, try Haskell. It'll blow your mind, mannn... Functional languages like Haskell are great for building discipline and good coding practices. But if you want something like Haskell that's not as strict, try Clojure. It's a Lisp, so brace yourself for a boat load of parentheses. My personal favorites are C++, Python, R, and Ada.

Re:For a good time... (1)

rubycodez (864176) | more than 2 years ago | (#39911223)

Java is NOT an "everything is an object" language, the primitives are not objects. In Ruby I can add methods to integers, reals, boolean true and false, and nil.

C# or PHP (0, Informative)

Anonymous Coward | more than 2 years ago | (#39911003)

C# is a robust language, and has both free versions from Microsoft for Windows (command-line SDK compiler and Visual Studio 2010 Express IDE) and open-source packages (Mono compiler/libraries and SharpDevelop IDE) that run on most platforms. There's a lot of depth to the language and it borrows many of the best ideas from functional programming languages. It also has the advantage of being a translatable skill for iOS, Android, and Windows 7 mobile apps using MonoTouch (not free).

PHP is a better choice if your main environment is Linux or OS X, if you aren't looking for strong IDE support, and you primarily want to write console apps, or web apps running under Apache. There is a Mono-based implementation of ASP.NET for non-Microsoft web servers, but it's sort of a pain.

Both of these also have strong support communities on StackOverflow and other places when you run into questions, and both are desirable job skills if your interest changes from being personal to being career-minded.

Try Scratch.... or perhaps the DCPU-16 (1)

Teancum (67324) | more than 2 years ago | (#39911021)

If you really want to try something cutting edge but still want to stay high level with your programming, I'd strongly suggest Scratch: []

In spite of all of the junior high kids that make apps in the language, there is a strong adult community there as well... usually talking about educational applications of the language but sometimes getting into more serious programming discussions too. Some modding goes on, but if you have been out of the loop for 20 years from doing much programming, it will give you a fresh perspective in terms of newer programming paradigms and allow you to have some fun at the same time. Don't dismiss the power of this language as it has done some pretty amazing things, including emulating an operating system, doing finite state machines, and almost anything else you can imagine. Its power is more with multimedia development (rendering graphics, sprite manipulation, and audio integration into projects is like breathing air and foundational to the language), but it has pointers, arrays, and some nifty I/O controls as well. Some strong limits, but I presume by your restriction on language choices that you want a high level language.

If you want to get real retro though, I would strongly recommend that you check out the DCPU-16 [] . This is going to be the base "computer" used for a really cool science fiction game. If you want to have automated drones frying opponents on other continents, this is an environment you might want to check out. There are some compilers already written for this "computer within a computer" and even a couple of operating systems, but it has a real retro feel for what computers were like 20 years ago. For more information, see also the 0x10^c Wiki [] . Full all out cyber warfare is encouraged in this game too. Viruses, trojans, social exploiits, buffer overflows, and every trick in the book you can think of is going to play a part in this game. I don't know about the legality of those actions within the game, but if you really want to get into true hacking, this is a game for you.

C# (3, Insightful)

Kittenman (971447) | more than 2 years ago | (#39911025)

Wealth of books out there, it's fairly easy, and the "Express Edition" is free (and comes with a free Visual Studio). It looks good on a CV, makes you more attractive to the opposite sex, guaranteed to put hair on a billiard ball ... sorry, but you get the idea. Python's fine, but most fun is had in C#. YMMV, of course.

It's not (just) the language - it's the API (4, Insightful)

Ken_g6 (775014) | more than 2 years ago | (#39911063)

You say you can learn the syntax and basics of a language in a weekend. You're probably right. What you can't learn in a weekend is the standard API that comes with each language, defining all the standard objects and methods you'll want to use. That's probably the biggest change in the last 10 years. What you want to look for in a language is one that makes it easy to do stuff. What you want to look for in an API is good, usable documentation.

Javascript, for one, is a pretty bad language with hardly any standard API (aside from the browser's DOM). Fortunately, there are free add-ons, like jQuery, that add both language features and an API.

Java was one of the first languages with a large standard API. It has nice documentation, but the language is barely better than C/C++. An ecosystem has developed around Java bytecode, however: languages like JRuby and JPython can run like Java and interface with Java code. There's also "groovy", a "modern" language built entirely around Java bytecode.

The major competing bytecode standard is .NET, from Microsoft. They offer free-with-certain-restrictions .NET compilers for C/C++, C#, Visual Basic, and more. All of them can use the .NET API which is documented on the MSDN site. I never found the documentation quite as nice as Java's; but it's usable. Again, other languages have been made to run .NET bytecode: IronRuby and IronPython.

Python and Ruby outside the bytecode versions have their own APIs. If you liked Perl and like object-oriented programming you'll love Ruby.

Finally, if you find you can't stand all this object-oriented programming, try PHP. It's used widely for making dynamic web sites, and has a nice, large API with documentation; but it rarely uses user-defined objects.

Mod Up (0)

Anonymous Coward | more than 2 years ago | (#39911139)

Pretty decent points.

Chinese (2, Insightful)

Ralph Spoilsport (673134) | more than 2 years ago | (#39911085)

Programming isn't important. You "pay people to do that" - usually some minimal fee in the Philippines or Malaysia or India. The language to learn is chinese because this century belongs to them.

Re:Chinese (2)

Surt (22457) | more than 2 years ago | (#39911159)

The Chinese economy has peaked. Jobs are beginning to leave China for cheaper locations. Their economy may double in size one more time, which will still leave it smaller than the US economy.

Clojure (2)

slasho81 (455509) | more than 2 years ago | (#39911089)

If you're doing it for personal stuff and don't have the constraints of the corporate world - Clojure. It's the cutting edge. It's way ahead of anything else out there today.

Does your program need to be graphical or text (1)

Marrow (195242) | more than 2 years ago | (#39911091)

I think that is a big decision point. You may find that if you choose gui, that it will strongly affect which language you choose to go with.
Or maybe not.

'focus on coding for personal reasons' (1)

approachingZero (1365381) | more than 2 years ago | (#39911113)

Herein lies the rub. You don't say what it is you want to do. Robotics? Web stuff? My advice. Find out what it is people are successfully using to do things that are like what you want to do.

linux/opensource (0)

Anonymous Coward | more than 2 years ago | (#39911115)

you sound like distant from open source stuff..
please get yourself a little dusty in linux/opensource related news/projects and see where the world is going.
you can use VIM for edition ALL popular programming languages. its the fastest editor ever. but its takes a while to get used to.
for programming language try to write some small programs with C++ and Qt (opensource library of everything including very cool GUI stuff).. you will like this stuff..

Re:linux/opensource (0)

Anonymous Coward | more than 2 years ago | (#39911135)

edition = editing

A Book You May Like (4, Interesting)

DannyO152 (544940) | more than 2 years ago | (#39911119)

Pragmatic Programmers published "Seven Languages in Seven Weeks" last year. I liked the book and would recommend it for any one who wanted a taste of today's interesting languages. Over the past year, I've seen that some readers were disappointed at the language choices and some didn't like the way the author, Bruce A. Tate, selected a movie characters as shorthand descriptions for the languages' feels.

The languages: Ruby, IO, Prolog, Scala, Erlang, Clojure, and Haskell. As for development and runtime environments, these can be had and installed at no cost.

If I was asked to name the one language that is widely used, has immediate practicality, and the runtime is already installed on your computer, I'd pick javascript, which runs in the browser. Get a browser that has a console for reviewing javascript errors. The java part of its name is deceptive. It is quite different than java, but the 90s Netscape folks figured that that imprecision would help adoption. I'm not one to rue days, but that one could a candidate.

You didn't mention what languages you were familiar with from your consulting days. One question to be asked is whether you want to look at a language that is familiar but advanced the the ones you did work with or would you prefer to explore the other streams of language design. If you wish to write personal application and utilities, there is likely to be a language tied to your platform. For Windows, it's C#. For OS X, Objective-C. For Linux, you will have to pick a gui framework and its language.

What are you writing? (2)

techhead79 (1517299) | more than 2 years ago | (#39911125)

If you don't work for a company that forces you to develop in language xyz then you should pick the language that fits your needs...not pick a language and then start writing away. Yes...most languages can be bent upside down and backwards to do almost anything. That's ignoring the point though.

You're completely free to choose. Most of us don't have that luxury. Study carefully what you want to do and pick the best language for that task. Do not ask a large group of tech heads what language they love best. All we are going to do is preach up and down what we use the most. I use J2EE at work and PHP at home. For old school applications that actually exist on the freaken computer they are being used on...I honestly like QT but I'd love to have another chance to try python as a long time ago I did some work with tcl/tk.

Regardless of what you pick someone is going to have a problem with your choice. In fact if you're looking forward to years of development chances are the language you choose may not be the language of choice for new projects when you finally get around to finishing it off.

Pick the right language for the job...don't pick the most popular language out there unless you're looking to be employed again in the field.

How about Forth? (1)

noelhenson (691861) | more than 2 years ago | (#39911141)

I love using Forth to debug new hardware as well as develop embedded control systems. As you are retired and looking for a new, (fun?) native language, I'd sure give it a try.

what do you want to do? (1, Informative)

Surt (22457) | more than 2 years ago | (#39911149)

I'd use the preferred language for the kind of project you want to work on. If you just want to be employable, learn java.

The language that is popular with what you want to (0)

Anonymous Coward | more than 2 years ago | (#39911177)

The language to learn depends on what you are interested in, language choice is very much defined by the environment you want to work in these days. If you want to write windows apps, then c#/.net, if you are interested in unix then C/C++, for mac/iPhone c/Objective-c/Cocoa, for Android Java, about the only environment where you really are free to choose is web development, where PHP is the most popular, but plenty of other people are doing real work with other languages like python and ruby.

Ruby (0)

Anonymous Coward | more than 2 years ago | (#39911189)

You haven't really stated your goals, so I assume you'll want to be happy when hacking.

So I'd recommend Ruby.

It's the only language aimed to make programmers happy.

It's free, too.

Have fun!

Wow - 20 years of experience (0)

Anonymous Coward | more than 2 years ago | (#39911211)

If you have 20 years of development working with all sort of programming language, OS, and can't figure that you can
download Linux/Ubuntu with it own development tool set and Eclipse for FREE - then please don't write anything. You sound more
like a user than a developer/coder/hacker and you need tons of hand holding just to write a simple program.

So please, don't write anything cause your code will be too buggy and unmaintainable.

Java + Eclipse (1)

H0p313ss (811249) | more than 2 years ago | (#39911219)

Mature language and environment, vast number of open source third party libraries, runs literally anywhere. (Well... except iOS ...)

My favorite: C++/Qt (3, Insightful)

Kjella (173770) | more than 2 years ago | (#39911245)

I've found that Qt wraps most for the craziness that is C++, it's a very nice toolkit for for "personal project" size. Don't know what the commercial market is and don't care, but for hobbyist work I find it great. Of course if you want to be part of the "cool kids" you'd probably go with Java so you can program for Android, mobile is all the rage these days but I don't feel I need it for my projects. And that's really the question, what kind of apps are you looking to make? Desktop apps? Mobile apps? Web apps? Scripting? Simulations? There's still no one language to rule them all because they all do better at certain things.

Mono (0)

Anonymous Coward | more than 2 years ago | (#39911265)

Java+Eclipse is a pretty good suggestion.

Mono is really nice and pretty underrated. MonoDevelop is a little easier to set up, and is also free.

Retiring? (0)

Anonymous Coward | more than 2 years ago | (#39911267)

When you say "retiring" - do you mean in the sense that you're drawing from your IRA/SS/ or getting your income from somewhere other than a 8-6 corporate job?

And you want to program again?


GO back to 'C'. C development environments are pretty much free on all platforms - even from Microsoft [] . And they also have C# and VB. I would stay away from iTouch or iPad development though because you have to pay ($100) to join the Apple developer network in order to be able to put your software on your own device - unless they've changed in the last year since I looked. And they use that spawn of Satan - Objective C - sister demon to managed C++.

If I were retired, the last thing I'd want to do is program. Gardening and cooking would be it. And the interesting thing is that gardening and cooking has a shit load of science involved. In my spare time, I'm constantly teaching myself chemistry and botany. And the nice thing is that there are a shit load of free resources all over the net. I get to work with my hands, get outside, and get plenty of physical exercise moving bags of shit around - literally and figuratively. I've become a hell of a cook too. When my wife go out now, one of her comments is "it's better at home." We only go out to eat when she wants to give me a break or when the cook is awesome. There's this Thai place that I have not (yet) been able to do better.

Do whatever says. (1)

gestalt_n_pepper (991155) | more than 2 years ago | (#39911287)

If there are more jobs for C++, do that. If there are more for C# or Java, do that. Coding is either about money or it's masturbation (not that there's anything wrong with that...), but if you're doing it for money, then put yourself in the biggest money stream.

And sorry guys, if you're looking for money, that's probably not python, ruby, coffee, php or web language of the week. Much as I delight in all of them, there are just fewer high-paying jobs there last I looked. Feel free to prove me wrong. I'd be happier proven wrong here.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?