Live data from Hacker News

The Best Programming Language (or How to Stop Worrying and Love the Code)

blog.fourthbit.com

121–130 of 166 posts

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#121
post #12

Based on the code snippet, I'm not surprised he thinks C# is "verbose" with "lots of boilerplate" and "resembles Java", because the snippet is written as if it WAS Java, or at least written 10 years ago. Compare his GetFrequencies implementation with idiomatic, LINQ version: http://pastie.org/8834650

Same for his PHP examples. He seems to have picked notably horrible examples for the languages he doesn't really like.

And the PHP example is incredibly unidiomatic to today's devs (short-arrays, typehints, etc)

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#122
post #23

No mention of Lua? I guess the author hasn't tried it yet, either. (I haven't, but I was curious about his opinion on the language.)

Agreed. It's not as terse as something like Python, but it's pretty speedy and generally a pleasure to program in. (I'd get headaches if I had to look at Objective C blocks all day.) On the other hand, the availability of pure Lua libraries and even the official documentation aren't as complete as they could be.

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#123
post #80

This was an excellent article. Agree with the author on many points. Some notable mentions: - Scheme: One of the best languages. A shining example of the beauty of simplicity. I personally envy folks that got to learn programming with SICP. Unfortunately, I didn't crossed with the SICP as a kid, when I would probably had devoured it. - Haskell: possibly the most advanced programming language, with the downside of hav…

Haskell too much syntax? That's a very weird claim. Haskell's syntax is one of the leanest around. You could even argue the lack of syntax can be confusing sometimes. Beginners often mix up types, patterns and expressions, because there isn't a huge syntactic difference.

He means that Haskell has a lot of operators. Haskell code is often very symbol-heavy instead of word-heavy, which IMO can make it hard to read. It reminds me of Perl in that way.

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#124

«The first true object-oriented language. But it seems to me Smalltalk is pretty much a forgotten language.» Why do so many people kill Smalltalk so fast? I could give so many URLs to illustrate how Smalltalk has a stable and growing community, with so many open projects and people making a living out of it, teaching it in universities and using it for research, but I think these two links sum it all up: http://forum…

Well, just from my noob point of view, every time I've dug in and tried to get into Smalltalk, I've found the language to be really really nice, but I've found the ecosystem to be really really confusing. The concept of needing a development environment and a persistent image (probably not even using the right terms...) just doesn't click with me. I struggle to figure out where to put things, or how to use my editor,…

Sounds like you are not "ready" for Pharo yet. The problem with Pharo is that, as I said in the comment below, it's all in one package - it has built-in editor, built-in version control and package system, file manager, and generally built-in tools for almost everything. Image-basedness is also a big difference, it's a powerful concept, but it can be hard to really grok and use it effectively.

From what I know I think there are two ways you could go to avoid all this problems until you feel comfortable enough with Smalltalk to tackle them again. One way is GNU Smalltalk, "a Smalltalk for people who can type", which feels fairly normal to work with. You can use your editor and version control software with ease. From the look of it it has a bit less libraries and a bit smaller ecosystem and community, but it could serve you well as introductory Smalltalk.

The other way is Amber, which is a Smalltalk written in JavaScript (or maybe it self-compiles already?). It comes with a "browser" (the thing you use to explore and write code in Smalltalk) implemented as a JS app and you can play with it immediately in your (web) browser. It's also half-image, half-file based, so while it will introduce you to the concept of image based environment, you will use your favourite editor and other tools.

Smalltalk can feel very confusing at first and it is really different from what you know already. It may not be always possible to learn all of Smalltalk system (like Pharo) in one go, especially if you're working and you don't have too much free time. Going through the stages, from less-smalltalky to full Smalltalk environment may take a bit longer, but it will make it easier to learn it.

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#125

Have you ever seem a simple Prolog program solving the 'four coloring problem'? Try programming that in anything else. Prolog or something similar like Lisp with pattern matching is the tool of choice for speech recognition programs. Why these tools get dismissed in a world of tablet devices using Siri or Google is beyond me.

I'm not sure I agree with this line of reasoning.

The computation model of Prolog is fairly simple, relies on few primitive, and could be reimplemented in many language without much hassle. The abstract interpreter fits on a 1/4 page.

With unification and backtracking, you're into nondeterministic programming. It's great for some problem, and I agree it should perhaps be more regarded than it is, but it can be emulated inside other languages to solve such problems. You also have to be quite careful when using non-determinism.

That being said, my main point is that I think the "simple Prolog program solving" X is misleading. Of course a solution to a problem that requires exactly the model of computation the language provides is going to be simple in that language. But that model of computation isn't exclusive to that language, and I don't feel the implementation of the model in other languages suffer.

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#126

Earlier quoted context omitted.

LINQ is a tool, and a great one. But just as you need to understand malloc when writing C, you need to understand the basics of LINQ to use it in production. The main problems I've come across are all failure to understand delayed evaluation. Maybe I'm not using it in a complex way, but as soon as it start to feel too complex, LINQ is not the way to go. I agree that it can be difficult to debug - that's why it should…

What are the best resources for really grokking LINQ in depth? I'm not too impressed with the level of depth in the main LINQ section on MSDN - it seems (sensibly) more focused on how to use it than on how it works.

One of the best ways of understanding something is to implement it yourself.

To that end Jon Skeet has already documented how to do it in his Edulinq series[0][1].

[0] Link to series: http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/defau...

[1] Download of series (found in link): https://code.google.com/p/edulinq/downloads/list

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#127

Earlier quoted context omitted.

Well isn't that a cute dilemma. You're either an idiot, which means you won't understand it and shouldn't criticize, or you're not an idiot and your lack of understanding is an effective criticism. Reminds me of Haskell. Personally, I'm of the view that the planet is populated by humans, and you have to work with them, and C++'s arcane tome of a standard is perhaps a hostile environment for such creatures.

> Personally, I'm of the view that the planet is populated by humans, and you have to work with them, and C++'s arcane tome of a standard is perhaps a hostile environment for such creatures. I don't know, everybody who's doing serious commercial programming seems to doing OK with C++, for stuff from Photoshop to Premiere, and from MS Office to AAA games and super stable and fast multimedia apps, like Cubase, Studio O…

> everybody who's doing serious commercial programming ...

Really, so anyone using a higher level language for line of business apps isn't doing serious commercial programming?

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#128
post #19

Earlier quoted context omitted.

I completely agree. After having used C# extensively recently, and having used quite a lot of Java before that, I have a feeling that C# is what Java should have been/should be. LINQ alone makes C# infinitely less verbose and 'boilerplate' than Java.

Yeah, having done a little C#, my impression was "They aimed for 'a better Java' and mostly succeeded."

Mostly? There are very few things Java does better as a language, and most of those are opinion, not outright better.

My biggest interest in .Net/CLI/Mono from very early on was how much easier it was to interface with systems libraries vs. Java's JNI.

Re: The Best Programming Language (or How to Stop Worrying and Love the Code)

#130
post #109
post #79

Earlier quoted context omitted.

Sams Teach Yourself CPP One Hour a Day 7th and CPP Primer 5th

I think I have an older edition of that book, and it doesn't cover recursion. I would not recommend it for a novice programmer, other than picking up basic syntax, since it doesn't give anything substantial to sink your teeth into. The last C++ text that I came across was "C++ In Action: Industrial Strength Programming" by Bartosz Milewski. It was first published over a dozen years ago, so it will have dated a bit. I…

I don't think that recursion is really idiomatic in C++.
Post reply on HN