Programming Language Migration Path

While I was preparing some personal background information for a potential client, I was reviewing all the programming languages ​​that I have had experience with. I list languages ​​that I'm most experienced with on my resume. However, it occurred to me that if I was to list all the languages ​​that I've worked with, then the client would become overwhelmed with the resume and just write me off as either a total bit head or looney toons. But as I reflected on all these different environments I realized how much fun I've had being involved with the software development industry, and that a lot of that fun has to do with the learning process. I think this is what makes a good programmer. Not just the ability to write code, or come up with a very creative application, but the ability to learn. Lets admit it! If a programmer does not have good learning skills, then the programmer is going to have a very short career.

As an exercise, I'm going to list out my Programming Language Migration Path. I would be interested to hear from other programmers what their PLMP is as well. Here goes:

* Commodore Vic-20 Basic

* Commodore Vic-20 6502 Assembler

* Commodore 64 6510 Assembler (Lots of all nighters with this one!)

* IBM BASIC

* IBM Assembler (My hate relationship with segment addressing.)

* dBASE II (Wow! Structured programming.)

* GWBasic

* Turbo Pascal (Thank you Mr. Kahn! Best $ 49 I ever spent!)

* Turbo C

* dBASE III + (Cool, my dBASE II report generator now only takes 2 hours to run instead of 7.)

* Clipper / Foxbase

* dBASE IV

* dBASE SQL

* Microsoft C (First under DOS, then under Windows 3.1)

* SuperBase (First under Amiga DOS, then for MS Windows)

* SQL Windows (Whatever happened to this? Gupta?)

* Visual Basic 2.0

* Delphi

* Visual Basic 3.0

* Access Basic / Word Basic (Microsoft)

* Newton Script (My first "elegant" language)

* Visual Basic 4.0 & 5.0

* HTML

* FormLogic (for Apple Newton)

* Codewarrior C for Palm OS

* Visual Basic 6.0

* NS BASIC for Palm OS & Windows CE

* FileMaker 5

* Satellite Forms

* Visual C ++

* REAL Basic for Mac 9.x & OSX

* Java

* Codewarrior C ++ for Palm OS

* Appforge for Palm OS & Pocket PC

* C #

* FileMaker Pro 7.0

Whew! Not only is this a good exercise to reflect on all the languages ​​that I've worked with, but it is a good example of how the languages ​​and the technology has progressed during the past 25 years. I'm sure that I'll be adding much more to this PLMP in the near future as well. And as with most programmers I know, there is so much more that I would like to learn but just don't have the time.

Another good exercise is to bring this up as a topic of discussion with a group of programmers after a nice long day at any technical trade show. For example, quite some time ago, after a long day at the OS / 2 Developers Conference in Seattle (Yea, dating myself here.), I brought up the topic of 6502 Assembly Language programming. This was during dinner at around 7pm. The resulting conversation migrated to the hotel lobby where it continued until around 2am in the morning. (Ah, the good ol 'days.);)

(If you're a developer, I'd be interested in seeing your own personal Programming Language Migration Path. Shoot me an email to timdottrimbleatgmaildotcom.)

Timothy Trimble, The ART of Software Development

The Evolution of Python Language Over the Years

According to several websites, Python is one of the most popular coding languages of 2015. Along with being a high-level and general-purpose programming language, Python is also object-oriented and open source. At the same time, a good number of developers across the world have been making use of Python to create GUI applications, websites and mobile apps. The differentiating factor that Python brings to the table is that it enables programmers to flesh out concepts by writing less and readable code. The developers can further take advantage of several Python frameworks to mitigate the time and effort required for building large and complex software applications.

The programming language is currently being used by a number of high-traffic websites including Google, Yahoo Groups, Yahoo Maps, Linux Weekly News, Shopzilla and Web Therapy. Likewise, Python also finds great use for creating gaming, financial, scientific and educational applications. However, developers still use different versions of the programming language. According to the usage statistics and market share data of Python posted on W3techs, currently Python 2 is being used by 99.4% of websites, whereas Python 3 is being used only by 0.6% of websites. That is why, it becomes essential for each programmer to understand different versions of Python, and its evolution over many years.

How Python Has Been Evolving over the Years?

Conceived as a Hobby Programming Project

Despite being one of the most popular coding languages of 2015, Python was originally conceived by Guido van Rossum as a hobby project in December 1989. As Van Rossum’s office remained closed during Christmas, he was looking for a hobby project that will keep him occupied during the holidays. He planned to create an interpreter for a new scripting language, and named the project as Python. Thus, Python was originally designed as a successor to ABC programming language. After writing the interpreter, Van Rossum made the code public in February 1991. However, at present the open source programming language is being managed by the Python Software Foundation.

Version 1 of Python

Python 1.0 was released in January 1994. The major release included a number of new features and functional programming tools including lambda, filter, map and reduce. The version 1.4 was released with several new features like keyword arguments, built-in support for complex numbers, and a basic form of data hiding. The major release was followed by two minor releases, version 1.5 in December 1997 and version 1.6 in September 2000. The version 1 of Python lacked the features offered by popular programming languages of the time. But the initial versions created a solid foundation for development of a powerful and futuristic programming language.

Version 2 of Python

In October 2000, Python 2.0 was released with the new list comprehension feature and a garbage collection system. The syntax for the list comprehension feature was inspired by other functional programming languages like Haskell. But Python 2.0, unlike Haskell, gave preference to alphabetic keywords over punctuation characters. Also, the garbage collection system effectuated collection of reference cycles. The major release was followed by several minor releases. These releases added a number of functionality to the programming language like support for nested scopes, and unification of Python’s classes and types into a single hierarchy. The Python Software Foundation has already announced that there would be no Python 2.8. However, the Foundation will provide support to version 2.7 of the programming language till 2020.

Version 3 of Python

Python 3.0 was released in December 2008. It came with a several new features and enhancements, along with a number of deprecated features. The deprecated features and backward incompatibility make version 3 of Python completely different from earlier versions. So many developers still use Python 2.6 or 2.7 to avail the features deprecated from last major release. However, the new features of Python 3 made it more modern and popular. Many developers even switched to version 3.0 of the programming language to avail these awesome features.

Python 3.0 replaced print statement with the built-in print() function, while allowing programmers to use custom separator between lines. Likewise, it simplified the rules of ordering comparison. If the operands are not organized in a natural and meaningful order, the ordering comparison operators can now raise a TypeError exception. The version 3 of the programming language further uses text and data instead of Unicode and 8-bit strings. While treating all code as Unicode by default it represents binary data as encoded Unicode.

As Python 3 is backward incompatible, the programmers cannot access features like string exceptions, old-style classes, and implicit relative imports. Also, the developers must be familiar with changes made to syntax and APIs. They can use a tool called “2to3” to migrate their application from Python 2 to 3 smoothly. The tool highlights incompatibility and areas of concern through comments and warnings. The comments help programmers to make changes to the code, and upgrade their existing applications to the latest version of programming language.

Latest Versions of Python

At present, programmers can choose either version 3.4.3 or 2.7.10 of Python. Python 2.7 enables developers to avail improved numeric handling and enhancements for standard library. The version further makes it easier for developers to migrate to Python 3. On the other hand, Python 3.4 comes with several new features and library modules, security improvements and CPython implementation improvements. However, a number of features are deprecated in both Python API and programming language. The developers can still use Python 3.4 to avail support in the longer run.

Version 4 of Python

Python 4.0 is expected to be available in 2023 after the release of Python 3.9. It will come with features that will help programmers to switch from version 3 to 4 seamlessly. Also, as they gain experience, the expert Python developers can take advantage of a number of backward compatible features to modernize their existing applications without putting any extra time and effort. However, the developers still have to wait many years to get a clear picture of Python 4.0. However, they must monitor the latest releases to easily migrate to the version 4.0 of the popular coding language.

The version 2 and version 3 of Python are completely different from each other. So each programmer must understand the features of these distinct versions, and compare their functionality based on specific needs of the project. Also, he needs to check the version of Python that each framework supports. However, each developer must take advantage of the latest version of Python to avail new features and long-term support.

Harri has an avid interest in Python and loves to blog interesting stuff about the technology. He recently wrote an interesting Python blog on http://www.allaboutweb.biz/category/python/.