Click here to close now.

Welcome!

@MicroservicesE Blog Authors: Liz McMillan, Pat Romanski, Sematext Blog, Elizabeth White, Ian Goldsmith

Related Topics: @MicroservicesE Blog, Java IoT, Industrial IoT, Microsoft Cloud, Open Source Cloud, IoT User Interface, Ruby, Perl, Python

@MicroservicesE Blog: Blog Feed Post

Choosing Your First Programming Language

Which is easiest, the most professionally useful, the most newbie-friendly?

By

Many new programmers struggle when it comes to selecting their first language to learn.  Which is easiest, the most professionally useful, the most newbie-friendly?  Lets find out by showing you a range of options, their strengths and weaknesses, and some information about the most common programming languages in demand today.  At the end, we’ll make some recommendations and you’ll understand a bit more about why they were chosen.

The Task At Hand
Every job requires the right kind of tool, and each programming language can be thought of as a separate tool.  Just like some tools are good for hammering nails, driving screws, and leveling screws, some programming languages are innately more suitable than others for tasks like designing a website, interpreting text, or reacting to user input.

Lets go through a few common use cases:

Language

Typical Usage

Java

Thick-client applications, large web apps, web applets, cross-platform

C# / .Net

Windows applications, iPhone apps

PHP

Web Application back-ends

Javascript

User interaction through web browser

Python

Science apps, computer admin tools, automating repetitive tasks quickly, can run on Linux and Windows (like java)

Ruby

Robust & Large web applications

Perl

Working with lots of text

Bash

Automating Linux Activities (like starting/stopping processes)

C/C++

Medium to Large projects, Embedded development, applications where speed is a factor

All of these languages can perform the same (or nearly the same) tasks as all the others, but the amount of effort can vary widely from language to language.  You’ll see that in some of the examples in the next section…

Detail-Oriented
All programming languages rely on structure to perform their tasks.  This structure is known as Syntax.  The syntax for English and Japanese are night and day, but the syntax for French and Spanish are very similar (if you remember your language classes from high school!).  The same applies to computer languages.  Lets look at some examples:

Java

C#

public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, World”);
}
}

public class Hello1
{
public static void Main()
{
System.Console.WriteLine(“Hello, World!”);
}
}

vs

Perl

Python

#!/usr/bin/perl
print “Hello World.\n”;

#!/usr/bin/python

print “Hello World\n”

 

You can see that Perl and Python are nearly as identical to each other as Java and C# are!

programmingThis makes sense because many languages are modeled after one another.  By choosing a language that is syntactically similar to many other languages, you can practically learn multiple languages at once!

Hey, by the way, if you looked closely at those examples, you’ll notice some are simple, others are complex, and some require semicolons at the ends of lines while others don’t.  If you’re just getting started in programming, sometimes it’s best to choose languages without many syntactical (or logical) rules because it allows the language to “Get out of its own way”.  If you’ve tried one language and really struggled with it, try a simpler one!

Setup:

If you’ve seen your use case mentioned in the table above, or have decided on a language already, you’ll need a way to run it.  Generally, scripting languages require something called an Interpreter whereas C and C++ require compilers.  Almost all of the languages mentioned in this article (with the exception of C#) are easiest to set up with any flavor of Linux — it really doesn’t matter which kind.  C# is a special case because you need Visual Studio and Windows to use that.

PHP really requires a lot of work to set up in tandem with Apache/IIS, so we’ll save it for your own Googling or another article.  The languages and links below are the easiest to set up.

Language

Windows

Ubuntu Linux Console Command

Ruby

http://rubyinstaller.org/

apt-get install ruby

Python 2.7

http://www.activestate.com/activepython/downloads

apt-get install python

C#/.Net

http://www.microsoft.com/visualstudio/eng/downloads#d-2012-express

N/A

Java

http://www.oracle.com/technetwork/java/javase/downloads/index.html

http://www.eclipse.org/downloads/

apt-get install openjdk

C++

http://www.microsoft.com/visualstudio/eng/downloads#d-2012-express

apt-get install build-essential gcc

 

You can see that things on Linux can be quite easy to set up, but of course requires some amount of familiarity with the operating system.  If you’re not scared to jump into Linux feet-first and take some time to Google your issues, I highly recommend that you use Linux.  Either way, you’ll be using the command line in order to debug your programs anyways.

Popularity Contest:
TIOBE.com
maintains a who’s-who popularity list for all the most popular computer programming languages.  It’s created by crawling various search engines and scraping the results.  You can view all of their charts and graphs at http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

These are the top ten:

1

1

*

C

16.975%

-2.32%

A

2

2

*

Java

16.154%

-0.11%

A

3

4

*

C++

8.664%

-0.48%

A

4

3

*

Objective-C

8.561%

-1.21%

A

5

6

*

PHP

6.430%

+0.82%

A

6

5

*

C#

5.564%

-1.03%

A

7

7

*

(Visual) Basic

4.837%

-0.69%

A

8

8

*

Python

3.169%

-0.69%

A

9

11

*

JavaScript

2.015%

+0.69%

A

10

14

*

Transact-SQL

1.997%

+1.12%

A

So All This Information Is Nice But…
You need to make a decision, right.  Well, lets make a couple more charts and then get you started:

1. I’m a Windows User and I want to Get Into Programming
If you’re making something simple and want some experience that will translate into real-world usefulness, start with C#/.Net — setup is easy, the Visual Studio really helps you out, and there are plenty of resources to help you, including technet and MSDN directly from Microsoft!

Those languages aren’t as easy as Python, but Python isn’t going to help you out as much if you’re looking to make a simple graphical application.  That being said, if you just need a command-line utility, take a close look at Python.

2. I’m familiar with Linux and I want to make/automate something
Python.  Simple, fast, incredibly powerful, easy to use and experience with it translates fairly well into other languages.  Absolutely a must for beginners willing to get their feet wet with Linux.

3. I want to build a website
JavaScript and PHP — These languages require the most amount of know-how to set up (you have to install a webserver and make sure it’s configured to run PHP) but aren’t too complicated once you get that ball rolling.  PHP isn’t going to get you as much experience working with modern programming languages unless you use it in an Object-Oriented style though.

JavaScript is very useful to know and is easy to learn.  You’ll get a lot of use out of it, even without PHP.  In fact, you can make and run Javascript programs without any setup, right in your browser.

Just give me a Language!
Python.  It’s easy, already used by thousands, very extendable, doesn’t require as much attention to detail, and allows beginners to learn logic basics before going into object-oriented programming.

Read the original blog entry...

More Stories By Bob Gourley

Bob Gourley, former CTO of the Defense Intelligence Agency (DIA), is Founder and CTO of Crucial Point LLC, a technology research and advisory firm providing fact based technology reviews in support of venture capital, private equity and emerging technology firms. He has extensive industry experience in intelligence and security and was awarded an intelligence community meritorious achievement award by AFCEA in 2008, and has also been recognized as an Infoworld Top 25 CTO and as one of the most fascinating communicators in Government IT by GovFresh.

@MicroservicesExpo Stories
The release of Kibana 4.x has had an impact on monitoring and other related activities.  In this post we’re going to get specific and show you how to add Node.js monitoring to the Kibana 4 server app.  Why Node.js?  Because Kibana 4 now comes with a little Node.js server app that sits between the Kibana UI and the […]
Containers Expo Blog covers the world of containers, as this lightweight alternative to virtual machines enables developers to work with identical dev environments and stacks. Containers Expo Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. Bookmark Containers Expo Blog ▸ Here Follow new article posts on Twitter at @ContainersExpo
In this scenarios approach Joe Thykattil, Technology Architect & Sales at TimeWarner / Navisite, presented examples that will allow business-savvy professionals to make informed decisions based on a sound business model. This model covered the technology options in detail as well as a financial analysis. The TCO (Total Cost of Ownership) and ROI (Return on Investment) demonstrated how to start, develop and formulate a business case that will allow both small and large scale projects to achieve...
Storage administrators find themselves walking a line between meeting employees’ demands to use public cloud storage services, and their organizations’ need to store information on-premises for security, performance, cost and compliance reasons. However, as file sharing protocols like CIFS and NFS continue to lose their relevance, simply relying only on a NAS-based environment creates inefficiencies that hurt productivity and the bottom line. IT wants to implement cloud storage it can purchase a...
After a couple of false starts, cloud-based desktop solutions are picking up steam, driven by trends such as BYOD and pervasive high-speed connectivity. In his session at 15th Cloud Expo, Seth Bostock, CEO of IndependenceIT, cut through the hype and the acronyms, and discussed the emergence of full-featured cloud workspaces that do for the desktop what cloud infrastructure did for the server. He also discussed VDI vs DaaS, implementation strategies and evaluation criteria.
I’ve been thinking a bit about microservices (μServices) recently. My immediate reaction is to think: “Isn’t this just yet another new term for the same stuff, Web Services->SOA->APIs->Microservices?” Followed shortly by the thought, “well yes it is, but there are some important differences/distinguishing factors.” Microservices is an evolutionary paradigm born out of the need for simplicity (i.e., get away from the ESB) and alignment with agile (think DevOps) and scalable (think Containerizati...
There’s a lot of discussion around managing outages in production via the likes of DevOps principles and the corresponding software development lifecycles that does enable higher quality output from development, however, one cannot lay all blame for “bugs” and failures at the feet of those responsible for coding and development. As developers incorporate features and benefits of these paradigm shift, there is a learning curve and a point of not-knowing-what-is-not-known. Sometimes, the only way ...
Right off the bat, Newman advises that we should "think of microservices as a specific approach for SOA in the same way that XP or Scrum are specific approaches for Agile Software development". These analogies are very interesting because my expectation was that microservices is a pattern. So I might infer that microservices is a set of process techniques as opposed to an architectural approach. Yet in the book, Newman clearly includes some elements of concept model and architecture as well as p...
How can you compare one technology or tool to its competitors? Usually, there is no objective comparison available. So how do you know which is better? Eclipse or IntelliJ IDEA? Java EE or Spring? C# or Java? All you can usually find is a holy war and biased comparisons on vendor sites. But luckily, sometimes, you can find a fair comparison. How does this come to be? By having it co-authored by the stakeholders. The binary repository comparison matrix is one of those rare resources. It is edite...
Container technology is sending shock waves through the world of cloud computing. Heralded as the 'next big thing,' containers provide software owners a consistent way to package their software and dependencies while infrastructure operators benefit from a standard way to deploy and run them. Containers present new challenges for tracking usage due to their dynamic nature. They can also be deployed to bare metal, virtual machines and various cloud platforms. How do software owners track the usag...
Cloud Expo, Inc. has announced today that Andi Mann returns to DevOps Summit 2015 as Conference Chair. The 4th International DevOps Summit will take place on June 9-11, 2015, at the Javits Center in New York City. "DevOps is set to be one of the most profound disruptions to hit IT in decades," said Andi Mann. "It is a natural extension of cloud computing, and I have seen both firsthand and in independent research the fantastic results DevOps delivers. So I am excited to help the great team at ...
Enterprises are fast realizing the importance of integrating SaaS/Cloud applications, API and on-premises data and processes, to unleash hidden value. This webinar explores how managers can use a Microservice-centric approach to aggressively tackle the unexpected new integration challenges posed by proliferation of cloud, mobile, social and big data projects. Industry analyst and SOA expert Jason Bloomberg will strip away the hype from microservices, and clearly identify their advantages and d...
SYS-CON Events announced today that MetraTech, now part of Ericsson, has been named “Silver Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9–11, 2015, at the Javits Center in New York, NY. Ericsson is the driving force behind the Networked Society- a world leader in communications infrastructure, software and services. Some 40% of the world’s mobile traffic runs through networks Ericsson has supplied, serving more than 2.5 billion subscribers.
SYS-CON Events announced today that O'Reilly Media has been named “Media Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9–11, 2015, at the Javits Center in New York City, NY. O'Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O'Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption...
Amazon, Google and Facebook are household names in part because of their mastery of Big Data. But what about organizations without billions of dollars to spend on Big Data tools - how can they extract value from their data? In his session at 6th Big Data Expo®, Ali Ghodsi, Co-Founder and Head of Engineering at Databricks, discussed how the zero management cost and scalability of the cloud is addressing the challenges and pain points that data engineers face when working with Big Data. He also s...
The 4th International Internet of @ThingsExpo, co-located with the 17th International Cloud Expo - to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA - announces that its Call for Papers is open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.
Software development, like manufacturing, is a craft that requires the application of creative approaches to solve problems given a wide range of constraints. However, while engineering design may be craftwork, the production of most designed objects relies on a standardized and automated manufacturing process. By contrast, much of moving an application from prototype to production and, indeed, maintaining the application through its lifecycle has often remained craftwork. In his session at Dev...
The Internet of Things is a misnomer. That implies that everything is on the Internet, and that simply should not be - especially for things that are blurring the line between medical devices that stimulate like a pacemaker and quantified self-sensors like a pedometer or pulse tracker. The mesh of things that we manage must be segmented into zones of trust for sensing data, transmitting data, receiving command and control administrative changes, and peer-to-peer mesh messaging. In his session a...
SYS-CON Events announced today that EnterpriseDB (EDB), the leading worldwide provider of enterprise-class Postgres products and database compatibility solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. EDB is the largest provider of Postgres software and services that provides enterprise-class performance and scalability and the open source freedom to divert budget from more costly traditiona...
I read an insightful article this morning from Bernard Golden on DZone discussing the DevOps conundrum facing many enterprises today – is it better to build your own DevOps tools or go commercial? For Golden, the question arose from his observations at a number of DevOps Days events he has attended, where typically the audience is composed of startup professionals: “I have to say, though, that a typical feature of most presentations is a recitation of the various open source products and compo...