
8 Considerations on Choosing a Programming Language - david04
http://www.scala-academy.com/blog/8-considerations-on-choosing-a-programming-language
======
m0skit0
Stopped reading after "strong typing is better than weak typing". Well, it is
not. He/she rules out perfectly valid programming languages because of this
personal opinion nowhere near a fact
([http://stackoverflow.com/questions/125367/dynamic-type-
langu...](http://stackoverflow.com/questions/125367/dynamic-type-languages-
versus-static-type-languages)). In fact, it directly contradicts his/her
second point. I understand the author wants to drift it towards Scala, but
make an effort and choose the right arguments!

EDIT: well, at least the author states it is an "100% Opinionated View". And I
finally read it all, but still not very convincing.

And this comment is also an "100% Opinionated View" of course :)

~~~
david04
I'm the author.

Well, it is my opinion in fact, and that's why it says a "%100 opinionated
view" in the subtitle.

There are many other persons with the same opinion:
[http://stackoverflow.com/a/43072/731933](http://stackoverflow.com/a/43072/731933)
[http://blog.jooq.org/2014/12/11/the-inconvenient-truth-
about...](http://blog.jooq.org/2014/12/11/the-inconvenient-truth-about-
dynamic-vs-static-typing/) [http://www.teamten.com/lawrence/writings/java-for-
everything...](http://www.teamten.com/lawrence/writings/java-for-
everything.html)

If we were to discuss everything in this article, starting with dynamic vs
static typing, we'd still be here 3 months from now :). Which is why it is
opinionated.

~~~
jpitz
You may want to move Delphi out of the list of dynamically typed languages. It
is just as strongly typed as C# or Java.

~~~
david04
Ups, thank you for that! : )

------
nine_k
"The neutrality of this article is discussed", as they say in Wikipedia.

This is more of a rant than a thought, and much substance is left out where it
would be important to provide. It's obvious for which language the author is
rooting, while largely dismissing the rest.

Not recommended.

~~~
m0skit0
Well, hosted at scala-academy.com ;)

~~~
nine_k
They could do a finer, more sublime job of prodding people to the idea of
choosing Scala.

------
aperture
This article really didn't get an objective analysis. The Scala language looks
interesting, but the biggest "push" towards it was a graph of the job outlook,
with the y axis at the scale of... .04? 4%? Is that supposed to convince me to
use this in the industry, and apply my time?

I understand the article comes from scala-academy, but I think by offering a
more objective viewpoint of different languages and the standards they impose,
scala can show what niche they provide. I don't believe it is the niche of
"Everyone is hiring a Scala programmer", but it should be (quoted from the
article) "...implicits, underscore notation, flexible imports, multiple
classes per file, multi-line strings, pattern matching, traits with variables,
etc." If this article was about these points, with relations to other
languages, that could be some quality content!

For everything else, either the article misrepresented other languages, or
simply remained apathetic to their application.

~~~
david04
You can read a bit more about those scala features (in this case compared to
java) in this other article: [http://www.scala-academy.com/resources/java-vs-
scala](http://www.scala-academy.com/resources/java-vs-scala)

"Is that supposed to convince me to use this in the industry, and apply my
time?" I say in the article: «- Does this mean that I should use Scala? Can
you get a job you like programming Scala? If so, then: yes! (Otherwise, unless
you're rich, you need to pay your bills...)» If don't think you can get a job
programming Scala (because of where you live, or another reason) I explicitly
say you shouldn't learn it! :)

But the rate at which Scala jobs are becoming available is relevant: I don't
care if there are 200 Java jobs near me, as long as there are 3 or 4 Scala
ones. As long as I have a Scala job, I don't care if the other companies are
programming something else. If you can't get a Scala job - again: it's
probably best to not even to take the time to learn it.

------
tormeh
If I could downvote articles, I would have downvoted this one. It's like an
upbrand, long-form youtube comment.

~~~
a1b2c3
Haha, spot on.

------
ericmo
> This is academic/engineering/mathematics stuff. For equations, matrices, and
> such. You don't build accounting systems with these things. (Of course
> someone must have already done it!)

As an engineer, I have to say I don't like what is going on here, what's the
point in tossing academics, mathematicians and engineers aside? Many software
fields, such as artificial intelligence or machine learning, benefit from the
use of Matlab or R language. And of course, these are for Math stuff - I
usually come to HN to read less obvious things.

Using R to build an accounting system wouldn't be that silly if there are
heavy statistics to tackle. You can do mixed Java/R, R can be used in its
domain. And BTW, it'd be much simpler to use Java for an accounting system
than using Scala.

~~~
ericmo
Also, considering that Martin Odersky who designed the Scala language is an
academic who teaches at EPFL, I even feel ashamed about how this article
approaches "academic stuff".

------
Elrac
I worry about the author's qualifications if he rules out FORTRAN and Delphi
for failing to be statically typed. Both languages (Delphi is Pascal with OO
bolt-ons) are classic statically typed languages.

There are excellent reasons for rejecting FORTRAN, maybe Delphi too, but
dynamic typing isn't one of them.

EDIT for afterthought (sorry):

I also don't see the basis for rejecting Go as "low-level like C" while
singing the praises of Java - Go is not far, conceptually, from Java without
generics, i.e. maybe Java 6, with a few useful new ideas, like the channel-
based concurrency model and interface embedding instead of class inheritance
thrown in.

~~~
david04
Ups - I have to fix that.

Yep, I do lack experience programming Fortran and Delphi ;)

~~~
Elrac
I program in FORTRAN for a living. FEAR me or pity me - as you wish! ;)

------
stefs
there are a lot of half truths and in there, and i haven't even read half of
it yet. and i wont read the rest.

------
Binky_Bob
Wow. This sort of underhanded advocacy really undermines the efforts of the
Scala community. The half-truths and just-plain-wrong-headedness of this
article defy description.

I respect that you have an opinion, but your reasoning is disingenuous at best
and idiotic at worst.

------
yodsanklai
Most of the time, we don't get to choose what programming language to use.
It's dictated by professors, companies, platforms, application domains,
available librairies, available expertise and so on...

~~~
nine_k
We still choose something to learn as a part of self-improvement and self-
education.

Some languages are worth knowing even if you mostly use other languages,
because of the way they change your way of thinking.

------
tbrownaw
That fixed header bar over the top 1/4 of my screen is very annoying. Phone
displays are small enough without that crap.

Also, this article sounds like it's not entirely serious?

------
bernadus_edwin
I think you should observe more on microsoft stack. Big change, new ceo , new
policy. Some product change to open source, some product change to free

------
jkdufair
A %100 poorly articulated argument

------
kluck
If you can, choose a statically typed language over a dynamically typed one.
Reason: more errors are caught earlier during development. The rest of the
article is (in my opinion) really just pro-scala talk.

~~~
m0skit0
That's oversimplifying. There are much more things to take into account than
just that. If it was that simple, there would be no dynamic/weak typed
language, right?

~~~
kluck
Its a fact: Using a dynamically typed language you have to write more code
(tests etc.) to achieve the situation where you catch the same kind of bugs
that a statically typed language would inform you during analysis. Strong and
weak typing is a different thing.

And I agree, it is not that simple, but only if you take other factors into
account.

~~~
m0skit0
Why wouldn't you take other factors into account? Or better, why would you
take this factor in particular as the only factor that matters?

~~~
kluck
For me that is the most important factor, because it directly influences the
amount of code produced. Less code means less bugs and less code to
read/understand when getting back into a codebase.

~~~
m0skit0
Then I guess you chose the wrong side. Dynamically-typed languages produce
less code precisely because you don't need to specify the types. E.g. Scala is
more verbose than Clojure.

~~~
justthistime_
I'm not sure that Scala code + types is more verbose than Clojure code +
tests. (Which is what the OP argued.)

~~~
m0skit0
You need tests everywhere, statically typed doesn't mean you don't need to
test.

------
fdomig
This is a late april fool right? So much nonsense in one article ...

