DEV Community

Discussion on: What would you like your first programming language to be (or have been)?

Collapse
 
edh_developer profile image
edh_developer

I started with Applesoft Basic, which is what you got with an Apple //e.

If I could go back and choose a different language for myself that was widely available in the early 80's, along with a good book to go with it, I'd choose Pascal.

If I was starting today, and I'm not being pushed in a particular direction by some specific end goal (like native development for some particular platform).... I'm going with Groovy.

Why Groovy? Well...

  • As much as I'd like to think the right answer is Scheme, which I would then use to work my way through SICP, I think the truth is that I wouldn't stick with it.

  • I'd like to start with a strongly typed language, or something that can act like one. Groovy, if I pretend the keyword def doesn't exist, is close enough. I want to have to explicitly spell out what I'm doing, and have the compiler double-check me on it. I want the IDE support that strong typing helps enable. Speaking of which...

  • I want a reasonable IDE to work with. I'd be fine with Eclipse.

  • I want the various libraries that I'm likely to want to be built-in. If it's my first language, I don't want to mess around with package management.

  • I want well-organized API documentation. On that front, I like the online javadoc/groovydoc for whatever JDK version I'm using.

  • I would like reasonable built-in syntax for basic collection types. Lists and maps, for instance.

  • I would like to get started without needing to understand what's going on with lots of boilerplate. And without needing to understand and spell out packages for something as simple as a print statement. Looking at you Java...

  • I shouldn't have to know about backwards compatibility issues. And, cutting and pasting code should never lead to something bring broken because of issues with significant whitespace. Hi Python!

  • A REPL isn't a hard requirement, but it earns some bonus points.

The other option that I'd like to consider is Go, which I'm just getting to know. It seems like it has a lot going for it, but for now I don't know it well enough to feel comfortable choosing it over groovy.

Collapse
 
evanoman profile image
Evan Oman

You make a good argument! My experience with Groovy hasn't been great (mostly deciphering wild Gradle scripts) but I am always willing to give a JVM family member a chance :D

Collapse
 
jj profile image
Juan Julián Merelo Guervós

Thanks! I do think that REPLs are great to learn syntax and single-statement and sequencing before building whole programs.