It's Poem's time, borrowed from the java Advent calendar. Java was written in an Android project a few years ago. The complement of modern IDEs is great. Today we are talking about what programming language everyone loves and should learn. However, the adult version.
Well, everyone who has been writing code for quite a few years in some language. As a matter of course, I think that there are many people who have learned Java and have written it at work, or usually only write Java. Do you learn a new language every year, as it is said somewhere? I am learning halfway every year.
But maybe, for many of you, no programming language is worth learning as many years. Especially for a good old man, the number of programming languages that may be worth learning is less than half the number of years.
I learned Java 23 years ago (the year JDK 1.0 came out), how many languages have I learned so far? In my case, if I list the ones that I wrote the code and remember the name:
>>> A="Basic,Z80,6809,C,C++,Object-Pascal,Java,Ruby,Perl,Scala,R,Go,Haskel,F#,Kotlin,Swift,Objective-C,Groovy,Python,Dart,Nim,Elm,Julia".split(",")
>>> len(A)
23
Will be. Only what I remember is 23. There should be a few more, so I wonder if it's more than half the number of years. The i386 assembler was frustrated. Oh, I was also writing JavaScript. ..
Now that the SEO of programming schools is working, I see many stories about "programming languages to learn first", but I rarely see stories about "programming languages to learn at the end of my life" (contexts such as blur prevention). I've seen it in). So, I would like to write my case, "a programming language to learn at the end of my life," which I feel someone should try to write.
We are all dead in the long run (Keynes). So, it may be helpful for those who have learned several programming languages (... I wonder?).
When it comes to the second half or the end of my life, I remember hearing that in a seminar like pension economics, the diversity of old people is far greater than the diversity of babies. Since each person's life, which has an adult situation, is different, the "program language to be learned at the end of life" is probably different for each person.
――I need to earn tens of millions of yen in old age, but I don't want to reduce the hourly rate so much. ――The place where the hourly rate seems to be good even if you are over 60 years old is a project manager or a place for newcomer programming education. ――When it comes to Java, Java seems to be painful for presbyopia, so I would like to use Groovy 3.0, which is almost compatible, as a programming language to learn at the end of my life.
To the last, the idea as of the end of 2019.
Well, I want to write code, earn some money, invest some money, and reach old age. It costs tens of millions of yen after working until retirement age.
So, how much can you earn by writing code as a member of society? Let's write a little about the calculation.
A little helpful material is the "Latest Ranking of Lifetime Salary" Top 500 Companies in Tokyo "" below. https://toyokeizai.net/articles/-/313934?page=5 Among the companies that you may know the name of, the IT companies that are estimated to have a lifetime salary of just 300 million yen are the ones that you should pay attention to. Glittering cyber agents, Rakuten, which is often used as an official language in English. Even if he worked for such a company from new graduate to retirement age, he would get 300 million yen as a full-time employee (... there are very few such people). If converted as a freelance engineer, it would be good if he could earn 400 million yen, which is 1 + 1/3 times that amount, in his lifetime. I haven't got a job as a new graduate in the first place, and I'm broken in a black workplace on the way, so even if I catch up in the second half, it will be only about 250 million yen in terms of full-time employees. In other words, I want tens of millions of yen later.
I will probably end my working life by continuing to write scala. When learning a JVM language like Scala, I sometimes envy languages that can be natively compiled. Especially modern rust looks cool. ... But I think it's something different for an old man after retirement to write rust, which is a lower language, in a grind business. (Of course, it would be cool if there was such an old man) So, in my case, I rejected it because of my age. Oh, I think young people can make money by doing it properly with rust ~
It can be said that it is the opposite of rust, and I am quite attracted to the front-end neighborhood language elm in the standing position. (If you're an elm, read here first.) Since it is specialized for the web front end, the description is concise, but on the other hand, it can be written naturally and safely. With elm, I feel like I can use a code that is safe even in the year when dementia is approaching, which is wonderful. However, unfortunately, for me, who is vulnerable to UX, I could not see the future of earning tens of millions of yen with elm after retirement. If you are younger than the front end, you will definitely be happy if you do elm properly.
Other than that, it is possible that dart, which has regained its presence with flutter, and Go, which has become a practical language for microservices, can be used in practice. I don't think it's for the elderly, so I rejected it. I felt lonely to say that Haskell was the best way to prevent blurring, so I rejected it.
Well, it is groovy3. I think few people are paying attention. After all, groovy as Alt-Java has a longer history than other JVM languages, so groovy itself isn't much talked about anymore.
It is worth noting that the decisive difference from other JVM languages such as Scala / Kotlin is the ruby-like scripting language, but the high notational compatibility with Java. In this area, you should read the introductory article by NTT TechnoCross, who uses groovy in practice. https://www.ntt-tx.co.jp/column/tec/java_01/ (... In other words, in the case of solid development with a Spring-based framework, It means that it is easy to make proposals such as using groovy together to increase development productivity. )
Groovy has been around for a long time, but Groovy 3.0, which supports the evolution of Java itself after Java 8, is about to be released. ... it's been around for quite some time, probably because Java itself has a large language specification. http://groovy-lang.org/releasenotes/groovy-3.0.html
By the way, if you have SDKMAN in Java version control, you can try Groovy3.0 rc right away.
$ sdk list groovy
==== BROADCAST =================================================================
* 2019-12-08: Groovy 3.0.0-rc-2 released on SDKMAN! #groovylang
* 2019-12-06: Springboot 2.2.2.RELEASE released on SDKMAN! #springboot
* 2019-12-06: Springboot 2.1.11.RELEASE released on SDKMAN! #springboot
In short, if you learn groovy3.0, you can catch up with modern Java. If you've learned Java, ruby, or scala, you should relearn groovy, which is a combination of them. There is no ambition, it is the best.
However, such a non-brilliant choice is a choice that takes aging into consideration. People forget. And it gradually blurs. In order for such an old man not to become a fossil, he must know only 10 or 20 years ago of Java, which is useful as an educational language (I wrote android Java last, so in Java 10 years ago. There is only practical knowledge equivalent to Java 6).
However, even though I'm not working anymore, I don't really like Java8. Even I, who is such an old man, can enjoy learning with groovy3, which can be enjoyed as a scripting language.
Well, the idea of the end of life is different for each person (or is there more people who learn the last language than the program language?) In my case, I also choose the programming language to learn at the end of my life at COSPA, which is groovy3. If you can't get into modern Java for business, I think it's a good idea to learn groovy3 a little even on weekends because it doesn't have to be the end of your life.
I will write my groovy3 study notes after the official release of groovy3.
Finally, let's just write why you learn a programming language at the end of your life (if you only earn tens of millions of yen, there may be other options). That's because I want to tell young people who write programs the clues of object-oriented languages as soon as possible. To put it simply, ["Principles of system design useful in the field-Object-oriented practical techniques that make changes easy and safe"](https://www.amazon.co.jp/dp/B073GSDBGT/ref=dp- I would like to convey a level close to kindle-redirect? _ Encoding = UTF8 & btkr = 1) in places such as SIer's new employee education. I don't want to see young people burning up and being swept away by floods at the site of water fall development without object orientation. Now that I'm learning Domain Driven Design, I hope it will be a small social contribution.
So, life is various. Whether you're an old man or not, think about the program language you'll learn next year and the program language you'll learn at the end of your life during the New Year holidays.
Poem time is over ♪
... Ah, I was planning to write about graalVM and nim1.0, but it was time to go to work, so the time was up. ... a story for the game industry, not the SIer world. I'll write about graalVM later and put a link here. .. He said that graalvm, which can use JVM assets, is useful in languages like nim that specialize in low-level but concise writing. By the way, graalvm was painful in python. .. Actually, I think it's okay to spend tens of millions of yen in the game & e-sports industry in old age, but in that case, the last thing to learn in life is graalvm and nim or alt-python. ;-)
Recommended Posts