Earlier quoted context omitted.
It is interesting that you don't recommend any languages with a proper type system. Do you believe types are not important?
Define 'proper' type system; C is a static, strongly typed language, with the important feature that the type system is simple enough for an inexperienced programmer to understand and be capable of implementing.
Which programming language...?
21–30 of 37 posts
Re: Which programming language...?
#22> To achieve a magical sense of childlike wonder that you have a hard time differentiating from megalomania: Objective C I felt no childlike wonder while doing Objective C and this compared to Java. It's less verbose, but it's nothing that good about it. It did remind me of lisp but just barely([]). Oh, an memory management wasn't something I was looking forward to...
less verbose, really? People are giving Java crap for having to do string1.equals(string2) instead of string1 == string2, but what about [string isEqualToString:string2]. Also concating strings in Objective-C makes my eyes bleed. I still like the dynamic aspects of the language (selectors etc.) though.
Of course in Objective-C I would use casting so, indeed, it might be more verbose overall.
Re: Which programming language...?
#23Earlier quoted context omitted.
It is interesting that you don't recommend any languages with a proper type system. Do you believe types are not important?
Define 'proper' type system; C is a static, strongly typed language, with the important feature that the type system is simple enough for an inexperienced programmer to understand and be capable of implementing.
Re: Which programming language...?
#24To learn how a practical computer works: MMIX To understand the mathematical theory of computation: Turing Machine Tape To follow the subject from its roots: Babbage Analytic Engine Heap To truly grasp algorithms: Psuedocode And which of the two editors -- EMACS or vi -- should I use? Paper and pencil.
Paper and pencil are great, until you realize you have to insert a couple of lines of code up there.
Why put it off?
Re: Which programming language...?
#25These posts make me sad. If you are in a position to choose the language you're working in, choose the one that makes you and your team happy (in a gestalt sense, of course). I don't mean to be overly reductionist. But the languages that I'm currently happiest with are statically-typed, compiled, and run on the JVM. When I'm in a position to choose, I opt for the one in which myself and my coworkers are most producti…
But you are sane. So many here...aren't...
Re: Which programming language...?
#26Earlier quoted context omitted.
I don't; it's obviously written by Yet Another Bitter Python Hacker, and isn't even really that funny. I think that the best First Programming Language to learn would still be C, followed by some flavor of Lisp. C, because it's both practical and teaches you how your computer works at a low level, and Lisp, because it shows you how powerful computers can be when you strip them down to the mathematical bone. Everythin…
I 'learned' C first, never did anything useful. C is not beginner friendly simply because it provides no instant gratification. Python is instant gratification for newbies. You can make a GUI in five minutes. In C you have to READ A BOOK first. Console apps don't thrill young people. GUIs do. My two cents, take it for what it's worth.
Re: Which programming language...?
#27Earlier quoted context omitted.
It is interesting that you don't recommend any languages with a proper type system. Do you believe types are not important?
I'm guessing you're referring to languages like Haskell here. I think the work people are doing on types in those languages is fascinating but it also seems like work in progress and I wouldn't recommend those languages to a beginner. The key concepts in the lisp-like languages (closures, higher-order functions, garbage collection etc) are easier to understand in a dynamic language IMO.
How so? F# and Scala, and Haskell aren't dynamically typed languages...
Re: Which programming language...?
#28Before learning any language, first learn some DSLs, like ActionScript or Processing; they'll give you 100x the sense of "instant gratification" (really just a good feedback loop, to avoid learned helplessness) of general-purpose languages.
Then read a book on C; but don't bother trying to "learn" it yet. You won't get it, not at first. Then learn Javascript and PHP (and SQL), and use them until you get tired of Javascript's missing standard library and PHP's disorganized one. Quit using PHP; quit using Javascript for now. Read the C book again. Also read a book on Lisp.
Learn Python or Ruby now. Now read the C book one more time. This time you should understand it.
Now's a good time for a university education, if you'd like, or algorithms/data structures/discrete math books, if not. Become really good at creating normalized data structures and efficient indeces for them (to the point where you stop craving ORMs and NoSQL.) Learn to cache data.
Learn the sundry unix shell scripting languages (basically trying to live anything resembling a normal life on a non-GUI Linux set-up will force this on you, so that's a good proximal reccomendation.) Try to code some sort of compiler. Realize that, despite knowing however many of the algorithms involved, there still seems to be something magical about them. Learn an assembly language, and how the dynamic linker/loader, executable object format, and virtual memory subsystems of your OS work. Grok that compilers just do clever string processing, and write a simple one. Learn to cache instructions, and make your compiler do a few optimizations.
Keep learning other languages until the Lisp book makes sense. Then pick a language to work in, for you are now a Journeyman.
(If you'd like to like Javascript again at this point, learn Smalltalk or Lua, or look at how MOOs work. If you'd like to ever like C++, learn Haskell first and treat C++ as a compromise between it and assembler. Don't bother liking Java or C#, but learn some language on the JVM/CLR so as to like managed code in general.)
Re: Which programming language...?
#29Earlier quoted context omitted.
I don't; it's obviously written by Yet Another Bitter Python Hacker, and isn't even really that funny. I think that the best First Programming Language to learn would still be C, followed by some flavor of Lisp. C, because it's both practical and teaches you how your computer works at a low level, and Lisp, because it shows you how powerful computers can be when you strip them down to the mathematical bone. Everythin…
isn't even really that funny. Yep, this one was better: http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...
Re: Which programming language...?
#30Earlier quoted context omitted.
I don't; it's obviously written by Yet Another Bitter Python Hacker, and isn't even really that funny. I think that the best First Programming Language to learn would still be C, followed by some flavor of Lisp. C, because it's both practical and teaches you how your computer works at a low level, and Lisp, because it shows you how powerful computers can be when you strip them down to the mathematical bone. Everythin…
I 'learned' C first, never did anything useful. C is not beginner friendly simply because it provides no instant gratification. Python is instant gratification for newbies. You can make a GUI in five minutes. In C you have to READ A BOOK first. Console apps don't thrill young people. GUIs do. My two cents, take it for what it's worth.