I worked with PHP in my day-to-day job for more than three years now. Since PHP is not
really the best tool for
many projects, I looked around for other languages available.
There were two languages which looked
interesting to me:
- go, which is very opinionated
- scala, which is not at all opinionated (multi-paradigm etc.)
In many ways, this two languages are contrary. One important goal
for the go-lang creators was to keep
the language simple, so that it can be used efficiently after a
short period of learning time. Scala on the other hand is quite feature-rich,
and generally needs a lot of time to learn.
While I liked the idea of a simple (but still well designed) language, I was also
impressed by the possibilities that an advanced language like scala can give us.
So I decided to invest time in learning scala.
In this article, I want to
describe some of the features I like very much, and compare them with
PHP. If you're interested in the go language, please have a look
at this article, describing go for php devs.
It's written by Evert Pot,
which decided to go with go ...
Another thing to note: This is not intended to be an article about how bad PHP is. PHP has
improved a lot in the last years, both the language itself and the way that the
majority of the community writes code. In my opinion PHP may be the right tool for some
projects. But from a technical perspective, I think there are better options available
So now, let's look at scala:
As our team is currently discussing which language
we want to use for the next project,
I thought about that question a lot recently. Here I will
share some of my thoughts about the
criteria I use to evaluate a programming language.
We mostly write the usual kind of server applications,
and I think for our use case
most languages are good (or good enough) in terms
of performance. The focus of this article is
developer productivity, or effectiveness, instead.