What Programming language to learn Next?
-
I've heard people say Every decent programmer should know C. What is the deal with that ?
People are stupid.
They probably mean, "you should know how a computer works at the instruction level". Since C translates almost 1-to-1 to that.
-
Because Microsoft has never used some stupid hype for one single product only to never let you hear anything about it ever again.
Microsoft also does that on purpose to throw their competitors off. I'm 99% convinced a lot of time it's a tactic.
-
I am looking to learn a programming language primarily for personal / afterwork use.This means playing with it on my spare time,Hobby projects,little scripts etc.
I would like to invest my time in something that ranks high on the "Bang for the Buck" scale in terms of being the most fun and being as different from c# as possible .
If you're looking to learn something unusual, simply for personal knowledge, there are many such languages around, like [URL=https://en.wikipedia.org/wiki/Haskell_%28programming_language%29]Haskell[/URL], [URL=https://en.wikipedia.org/wiki/Erlang_%28programming_language%29]Erlang[/URL] [URL=https://en.wikipedia.org/wiki/Eiffel_%28programming_language%29]Eiffel[/URL], and countless others. But it's questionable whether there will be any practical point to learning them. Some of these obscure languages are still used, but usually only in very specific product domains or in academia.
[URL=https://en.wikipedia.org/wiki/Lisp_%28programming_language%29]LISP[/URL] is a fun and unusual language. It is the archetype of functional languages (and influenced the design of countless others) and is therefore very different from procedural (like C) and Object-Oriented (like SmallTalk) languages. It was once very popular among AI researchers. It's also the scripting language that drives most of Emacs's functionality. If you use Emacs, knowledge of LISP will be useful, should you decide to add to, debug or otherwise play with its built-in functionality.
If you enjoy object-oriented programming, you may be interested in something that follows the Smalltalk model (vs. the C++ model, which is also used by Java and other popular web languages today.) [URL=https://en.wikipedia.org/wiki/Smalltalk]Smalltalk[/URL] itself is available. [URL=https://en.wikipedia.org/wiki/Objective-C]Objective-C[/URL] (used by Mac OS X, NeXTStep/OpenStep and the free GNUStep environment) follows this model and will be necessary if you decide to write software for any Apple products (Mac, iPhone, iPad,etc.) If you use one of these languages, be sure to work with an environment that has a robust standard class library (and if you use Objective-C, preferably one that implments the Apple/NeXT classes) - you don't want to spend time re-inventing wheels.
Although not well known outside of IBM products, the [URL=https://en.wikipedia.org/wiki/Rexx]Rexx[/URL] language is very commonly used on all of IBM's operating systems. I worked with it in the 90's when I was doing OS/2 development and had a lot of fun using it as my go-to scripting language. One of the cool things about Rexx is that it can be (and frequently is) embedded within other products. On IBM platforms, you often find Rexx used as an application's scripting language, where it is extended with application-specific commands and functions.
-
Coincidently, I just came from taking a look at Kotlin from JetBrains.
It runs on the JVM and has interop with Java. It's also compilable to JS, I believe.
It has some nice ideas, like data classes:
data class User(val name: String, val age: Int) val jane = User("Jane", 35) println(jane) // Prints "User(name=Jane, age=35)" val (name, age) = jane // Destructuring assigment println("$name, $age years of age") // String interpolation aka string template
and qualified returns:
fun reachable(from: Vertex, to: Vertex): Boolean { val visited = HashSet<Vertex>() fun dfs(current: Vertex) { // here we return from the outer function: if (current == to) return@reachable true // And here -- from local function: if (!visited.add(current)) return for (v in current.neighbors) dfs(v) } dfs(from) return false // if dfs() did not return true already }
As well as all those niceties we expect from a modern programming language: type inference, higher order functions / lambdas / inline functions, explicit nullable types, generics, coalescing operator, and so forth.
Still... I believe I second the choice of Python because it's easily embeddable, comes with its own REPL, there's already a .Net implementation, there's tonnes of libraries and documentation.
-
-
I did a school project in the kernel. It was fun.
-
I've only worked with Scheme, but it was fine. From quick reading, if you want more built in common stuff, use Common LISP?
-
I don't know much about lisp brah!
-
-
Why has nobody mentioned Haskell,F# or Ocaml so far ?
If you want to try Haskell, there's a web framework called Yesod, that will allow you to generate everything (HTML, CSS, Javascript) from Haskell code.
-
The part that actually pisses me off is when I download an application that's just WebKit in a window... AND IT'S FUCKING RUNNING NODE IN THE BACKGROUND!
HEY, MORON! You know what Node is? It's v8 compiled as a standalone. You know what WebKit contains? v8! YO DAWG JOKES ARE ONLY FUNNY WHEN THEY ARE NOT REAL!
I'm pretty sure frameworks like electron actually share the same V8 between the UI and "backend". It's been a while before I did that kind of stuff, there's some strange boundary stuff. But it should be the same "workspace". I think.
-
how practical these languages are wihout an ide
Or, and this is a crazy idea I know, use a fucking IDE.
-
Or, and this is a crazy idea I know, use a fucking IDE.
Yeah, who the fuck has an IDE available and chooses not to use it?
-
brb jerking off to my .vimrc
-
brb jerking off to my .vimrc
People here have a lot of strange fetishes, but this might be the strangest one
-
C
because you do not know programming if you do not know it. Also, sooner or later you will need it.Python
if you want something high level for scripting, or scientific computingRust
because it is fun, fast and modern.JavaScript
only if you have any intention of web development of any sort. Because you do not know web development if you do not knowJavaScript
. Also, sooner or later you will need it.
Go
will suck joy out of programming otherwise it seems to get a lot of momentum.
-
They probably mean, "you should know how a computer works at the instruction level". Since C translates almost 1-to-1 to that.
That would be Assembly
-
Hey, it attracts the ladies:
-
You should look up the word "almost" in a dictionary. Might find it interesting.
-
After a very brief look at the INTERCAL site,It looks like something that was created with pure WTFery as its main goal .
It was.
-
In all seriousness though, Eclipse + Vrapper is great, usually.
-
The VI mode of IntelliJ is supposed to be pretty cool as well. (I wouldn't know, I'm fine with the shortcuts for people who don't hate themselves.)
-
Almost : very nearly but not exactly
Maybe you should learn C and Assembly, because you don't know either if you think they are almost the same.
-
Not tried it yet. Supposedly ViPlugin is better for Eclipse than Vrapper, but I'm probably not going to spend $15 on it when Vrapper is working just fine for me.
-
@David_C said:
LISP is a fun and unusual language
Any specific variant of lisp that you'd recommend?
My only recent experience with LISP is with the version embedded in Emacs. I'm afraid my other experience is all far too old to be meaningful. eLISP is pretty good, but it does mean you need tor run your application from within Emacs, which may not be appropriate for your project.
-
-
Maybe you should learn C and Assembly, because you don't know either if you think they are almost the same.
Right Blakeyrats is the dumb idiot who knows nothing and you're so much far superior to him because you know all the Cs and Assemblys and obviously blakeyrat does not know either because he is Dum-Dum Mc Stupidhead.
Look, the fucking POINT is: people who say that are stupid.
-
Not tried it yet. Supposedly ViPlugin is better for Eclipse than Vrapper
I've never looked at Eclipse and thought "Oh, this should be more like Vim".
-
ggVGd
-
I've never looked at Eclipse and thought "Oh, this should be more like Vim".
I've never looked at anything and thought that it should be more like Vim. Maybe a gulag?
-
There's always [ed][1], the standard text editor.
Let's look at a typical novice's session with the mighty ed:
``` golem> ed
?
help
?
?
?
quit
?
exit
?
bye
?
hello?
?
eat flaming death
?
^C
?
^C
?
^D
?--- Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.</blockquote> [1]: http://c2.com/cgi/wiki?EdIsTheStandardTextEditor
-
-
At least vim spits out
Type :quit Enter to exit vim
-
Clojure
As a variant of this, it may be worth considering Clojurescript, which is pretty much the same but compiles to Javascript. Then you can also use LightTable perhaps.
Alternatively, you could take the easy route and try F#, since that will have familiar libraries available, and an IDE you have anyway, despite being very different to actually program with.
-
-
-
What's wrong with F#?
-
No idea, never worked with it. Nothing in particular I guess. Name sounds dumb.
-
Speaking of CLR languages, I'm kind of surprised @tar hasn't popped in to pimp Nemerle.
-
He's asking for something different, or I would have suggested it. But if he learns F#, that would be the next step anyway.
-
Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.
Reminds me of the classic fortune-cookie quote:
Brian Kernighan has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas guage, nor any of the numerous idiot lights which plague the modern driver. Rather, if the driver makes any mistake, a giant "?" lights up in the center of the dashboard. "The experienced driver", he says, "will usually know what's wrong."
I've also seen this attributed to Ken Thompson and other early UNIX developers.
-
I really like C++.
C++
Suggesting someone to learn C++ is similar to ask him to get a PhD in astrophysics. Yeah if you do that could be useful, but learning never comes near the end.
If you want something radically different, try Clojure. Yes, it's a LISP-dialect
It is so different it could re-wire your brain, and not for goodRight Blakeyrats is the dumb idiot who knows nothing and you're so much far superior to him because you know all the Cs and Assemblys and obviously blakeyrat does not know either because he is Dum-Dum Mc Stupidhead.
JavaScript is portable Assembly for Web, same as what C is for system programming. So if you know JS you already know both Assembly and C for web development.
-
JavaScript is portable Assembly for Web, same as what C is for system programming.
Whomever first said that (likely Douglas Crockford or Brendan Eich) should be taken out back and shot.
-
It is ugly but so is Assembly, and like it or not it is the only viable solution if you want something portable. So what is your suggestion? PNaCl did not take off, nor any other similar technologies. WebAssembly is still not ready too.
-
if you want something potable
get it from a tap or, if your water supply is crap, a bottled source
-
Can I now go and change it to portable, or that would break your clever jibe?
-
It is ugly but so is Assembly, and like it or not it is the only viable solution if you want something portable.
Assembly isn't portable. Or did you forget that's why C was invented in the first place?
-
JavaScript is portable Assembly for Web
Assembly is not but JavaScript is unless you run IE6 and MS Java
-
Yeah, the portable part is what gets me.
-
[Citation Needed]
You mean IE<9, and even then, really it's IE<10. 9 cleaned it (mostly) up.