Better Software - December 2007 - (Page 10) Code Craft Tools for OurTime by Chuck Allison Sometimes, when I can come up for air, I ponder how software development has changed over the years. I probably started before many of you, back in the day of paper tape and punch cards, even before the innovative eight-inch floppy disk. When I was doing classified work, a courier would take my card deck to a service bureau’s mainframe an hour’s drive away. I had to wait until the next morning to find out if I had any syntax errors. I quickly learned that desk-checking one’s code was not really optional. Getting a program to compile was a major milestone—a highly praised achievement that called for celebration. Recently, I perused Monster.com, finding that today’s developers require skills way beyond knowing how to compile code: Networking/Web: SOAP, HTML, DHTML, CSS, XML, JAXP, JAXB, DOM, SAX, ASP/.NET, Sockets, RPC, CORBA, RMI, DNS, LDAP, TCP/IP, NDS, Active Directory, VOIP, Ajax, Struts, WebLogic, WebSphere, Servlets, Hibernate, Flash Database: SQL, Oracle, PL/SQL, ProC, SQL Server, TSQL, MySQL, PostgreSQL, DB2, ADO.NET, ODBC, JDBC, MS Access Platforms: Windows, Linux, AS/400, J2EE, .NET, Solaris, HP/UX, J2ME, Windows CE Languages/Scripting: C, C++, C#, Java, PHP, Perl, Python, VB, VB.NET, COBOL, JavaScript Design: UML, Rational Rose, Design Patterns That’s a lot to just have heard of, let alone be familiar with. Software development isn’t what it used to be. Programming languages are not what they used to be, either. Consider how they’ve evolved. Here’s a much abbreviated timeline, showing the major innovations selected languages have introduced: 1954 FORTRAN (first high-level language): arrays, loops, subprograms 1958 Algol: block scope, structured programming, recursion 1959 Lisp: interpreted language, functional paradigm, garbage collection 1965 PL/I: exception handling, concurrency, pointers, 1967 Simula-67: objects and classes, inheritance, co-routines 10 www.StickyMinds.com 1968 Algol 68: user-defined structures, references, dynamic arrays 1980 Smalltalk: graphical user interfaces, object-oriented programming 1998 C++: type-safe generic (and multi-paradigm) programming These are the shoulders on which today’s languages stand. Languages for Our Time As of September 2007, the coding standards company TIOBE (see the StickyNotes for a link) rated the top twenty programming languages in order of popularity as follows: Java, C, Visual BASIC, PHP, C++, Perl, C#, Python, JavaScript, Ruby, PL/SQL, SAS, D, Delphi, ABAP, Lisp, COBOL, Lua, Ada, and FORTRAN. Three of these—PL/SQL, ABAP, and SAS—are specialpurpose languages. Visual BASIC and Delphi, while based on general-purpose languages, are specifically targeted for GUI development. What kind of languages are the other fifteen? Table 1 considers selected attributes of these languages. One language in particular crosses some interesting attribute boundaries. It compiles to native executables and is statically typed, yet it is garbage-collected—not your everyday combination. The D Programming Language The D language is mostly the handiwork of Walter Bright, developer of Zortech C++, the first native-code C++ compiler on DOS in the 1980s. Like many of us, he wondered what C++ would be like if compatibility with C were not an issue. Unlike the rest of us, he did something about it. The result is an efficient, easy-to-use language with built-in support for many of BETTER SOFTWARE DECEMBER 2007 ISTOCKPHOTO http://www.StickyMinds.com
Table of Contents Feed for the Digital Edition of Better Software - December 2007 Better Software - December 2007 Contents Mark Your Calendar What's Happening @ StickyMinds.com Technically Speaking Code Craft Test Connection Management Chronicles Man and Machine Let Your Values be Your Guide A Story About User Stories and Test-driven Development Product Announcements The Last Word Ad Index Better Software - December 2007 Better Software - December 2007 - Better Software - December 2007 (Page cover1) Better Software - December 2007 - Better Software - December 2007 (Page cover2) Better Software - December 2007 - Better Software - December 2007 (Page 1) Better Software - December 2007 - Better Software - December 2007 (Page 2) Better Software - December 2007 - Contents (Page 3) Better Software - December 2007 - Mark Your Calendar (Page 4) Better Software - December 2007 - Mark Your Calendar (Page 5) Better Software - December 2007 - Mark Your Calendar (Page 6) Better Software - December 2007 - Technically Speaking (Page 7) Better Software - December 2007 - Technically Speaking (Page 8) Better Software - December 2007 - What's Happening @ StickyMinds.com (Page 9) Better Software - December 2007 - Code Craft (Page 10) Better Software - December 2007 - Code Craft (Page 11) Better Software - December 2007 - Code Craft (Page 12) Better Software - December 2007 - Code Craft (Page 13) Better Software - December 2007 - Test Connection (Page 14) Better Software - December 2007 - Test Connection (Page 15) Better Software - December 2007 - Management Chronicles (Page 16) Better Software - December 2007 - Management Chronicles (Page 17) Better Software - December 2007 - Management Chronicles (Page 18) Better Software - December 2007 - Management Chronicles (Page 19) Better Software - December 2007 - Man and Machine (Page 20) Better Software - December 2007 - Man and Machine (Page 21) Better Software - December 2007 - Man and Machine (Page 22) Better Software - December 2007 - Man and Machine (Page 23) Better Software - December 2007 - Man and Machine (Page 24) Better Software - December 2007 - Man and Machine (Page 25) Better Software - December 2007 - Let Your Values be Your Guide (Page 26) Better Software - December 2007 - Let Your Values be Your Guide (Page 27) Better Software - December 2007 - Let Your Values be Your Guide (Page 28) Better Software - December 2007 - Let Your Values be Your Guide (Page 29) Better Software - December 2007 - Let Your Values be Your Guide (Page 30) Better Software - December 2007 - Let Your Values be Your Guide (Page 31) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 32) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 33) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 34) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 35) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 36) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 37) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 38) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 39) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 40) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 41) Better Software - December 2007 - A Story About User Stories and Test-driven Development (Page 42) Better Software - December 2007 - Product Announcements (Page 43) Better Software - December 2007 - Product Announcements (Page 44) Better Software - December 2007 - Product Announcements (Page 45) Better Software - December 2007 - Product Announcements (Page 46) Better Software - December 2007 - The Last Word (Page 47) Better Software - December 2007 - Ad Index (Page 48) Better Software - December 2007 - Ad Index (Page cover3) Better Software - December 2007 - Ad Index (Page cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.