Software development · Programming

What is your favorite programming language today?


October 10th, 2016

I am complete beginner when it comes to programming and I see that software development is a large field of interest so I don’t know where to start. What is your favorite programming language?

Silverio Diquigiovanni Embedded Software Architect

October 10th, 2016

By my personal opinion, there isn't a favorite language but a set of favorite languages depending by project target. I love Delphi Object Pascal because is simple but powerfull. Fast to learn, simply to debug e fast to compile. I use a lot it for Desktop applications (Windows) but I'm trying to using it to develop also Mac OS and Mobile applications. Java is a very powerful language and framework which I largely use in embedded projects running on linux OS. Is simple to develop an application in Linux/Windows/MacOS and see it run in ARM powered embbedded devices. Java is tedious in Desktop applications. JavaFX framework is limited to main OS and poor or inexistent in ARM board. C++ is excellent when I've to create compilators o new programming languages but hard to debug when STL or classes have a lot of operators overload, inheritance, etc. VisualBasic was my first programming language (actually was ASM for Hitachi RISC and Motorola 68xxx) and is very fast to learn. Unfortunately I don't like ActiveX and 3rd parts related libraries. The secret to develop fast is to have access to underground library source code. C is my basic language for device drivers development, or very small CPU.... 2016-10-10 15:12 GMT+02:00 Cinth Abbas :

Sebastien Mirolo CEO DjaoDjin inc.

October 10th, 2016

Where I would start is with the project I want to accomplish. Looking to put a webpage online? OK. Google "how to put a webpage online", "how to change background color", etc. Trying to install a CMS? Google "install open source CMS", "How to read a file and display it in my Wordpress site", etc.

The most difficult thing when starting programming is to switch to the state of mind of "What happens if I try this? And that?". Unfortunately you have to get rid of years of schooling and do-what-you-are-told attitude to become a good programmer.

The machine is never bored. It will keep on doing whatever you tell it to, no matter how stupid. So pick something you want to accomplish, customize a project for your taste, take it apart, and never be afraid to do the same thing one hundred different ways until it works.

HernĂ¡n Durand Institute of Veterinary Genetics (IGEVET) - CONICET

October 10th, 2016

There are many type of choices for selecting a programming environment, or stack, toolset, etc. If you have Politics/Financial constraints, like Management wants to contract with Oracle to feel secure about investment, then you will suffer for them because they inverted the burden of risk. Shortly, if project fails you failed, not them (because they chosed the "safest" choice).

If you are asking about Technical reasons this is what I use:

After following almost all mainstream-phenomenon promoted languages and every safe major programming technology (Java, Python, Ruby, PHP, JavaScript, C#, etc) I choose Smalltalk - a whole Object programming environment. Specifically the Open Source MIT licensed Pharo Smalltalk, which includes a growing niche of professional developers and survived all fashion tech trends since the seventies. The paradox is while many people try to classify it as "old", they experience cycles built around give actually MORE safety for huge investments (look at WhoUsesSmalltalk).

In Pharo you can prototype with no need of a database to store your objects and today contains libraries for SCC (GitHub, SmalltalkHub, etc), UI (Spec), Visualization (Roassal), Parsing ambiguous grammars, memoization (speed) and left recursion (PetitParser), Geographic Information Retrieval (Territorial), OS communication (FFI, OSProcess), Science (Numerical Methods, BioSmalltalk), Static and Dynamic Web frameworks (like Seaside + Bootstrap + Magritte for scaffolding), probably the best re-engineering framework of the world (Moose), Persistence (PGSQL, MySQL, SQLite, Oracle, DB2, ODBC, all of them through Glorp and GarageDB), Could SDKs (AWS), 3D, etc. There is a whole ecosystem worth to try it.

Smalltalk is the reference technology for Object-Orientation, Unit Testing, TDD, Reflection, Refactoring Browser, Generational Garbage Collection, and other artifacts (yes, all those things were created in Smalltalk) adopted by other camps. Today there are other FOSS Smalltalk flavors like Amber which compiles to JavaScript AMD, GemStone/S (active OODB), and Dolphin 7 for native Windows UI's.

I tend to differ about asking Google being a wise choice, their results are not curated and their Machine Learning can never replace valuable human experience. Everybody can write a sound article about Scala, Clojure or any fashioned language and Google will rank it because is trending... But popularity is not productivity.

Jim Belton Site Reliability Engineer at Cisco (OpenDNS)

October 10th, 2016

Anything that must run in a web browser, use javascript and one of the modern frameworks like react or angular. On the backend, you have choices. Use REST for the API, not SOAP. For web server code, I like to use python and flask for prototyping. For deployment, either Apache or Nginx can server a WSGI script (in python or any other language). Stand alone services that do heavy lifting, I like to write in C. You can also use C++, but I find it tends to be prone to memory leaks. Another option is Java. Java has loads of libraries but tends to be slow (due to the libraries, not the language) and prone to stalling for garbage collection. Assuming you want to take advantage of OTS software, you will probably run into these languages and more. For example, rabbitMQ requires the erlang (Erikson language) programming language. If you are in a Microsoft environment, you should look at C# (their equivalent to Java). I favour python because of it's simplicity. Before y2k, perl was the language for website backend. Python has most of the power of perl without the weirdness. Another optoion is Ruby/rails. I never learned it because I found the ruby community unhelpful, whereas python is very well documented. A final option is PHP. Like perl and python, it is a good language for rapid prototyping, but I find python a bit cleaner.

Valeriia Timokhina Eastern Peak Software: Custom software development

October 28th, 2016

It depends on your goals and on the project you're working on. For example, in our company we often use Ruby on rails for the prototyping and building an MVP for web platform. You can learn some useful information that is put simply and easy for understanding from this article for example: Why Ruby On Rails is a perfect choice for your next web app?

Rodolfo Guluarte Hale

October 28th, 2016

For me is between C# followed close by TypeScript. C# you can build almost any kind of software from web & mobile apps to services, utilities, libraries and desktop applications.

The language feels natural, it's strong typed, fast and easy to learn.