Performance Zone is brought to you in partnership with:

I have been a programmer since I was a young child in the Gifted and Talent Program in Rutherford, NJ back in 1979. I started programming on Commodore PETs – 4 bit. And then Apple IIs, Commodore 64s and some others. Basic, then Pascal, Fortran, C, C++, Java, JavaScript and more. I am a Senior Field Engineer with Pivotal. Tim is a DZone MVB and is not an employee of DZone and has posted 59 posts at DZone. You can read more from them at their website. View Full User Profile

The Days of Shell and Rational Roses

  • submit to reddit

This post  reminded me of why UNIX and combining simple single function programs together made UNIX (and Linux) so amazing.

My first college CGI and my first corporate one (Database America’s Yellow Pages engine) were all written in bourne shell!  I thought it was so primitive, but thinking back I was able to implement a functional, fast and solid application in only a few days.  The school project was as a simple web interface to a C++ application I wrote to do some B-Tree application for class.  I do remember making database calls through command line SQL tools and parsing the results wasn’t as clean or as safe as you would want, but that was really because the command line tools were not designed to fit into the standard UNIX change.

We eventually upgraded to Perl, which was really like ShellScript++.

I guess the takeaway here is that make small reusable components that function fast, simple and can be easily chained with other components to make a custom “tool”.  Software is just a tool even when it looks like a fancy magazine or funky website.  Hmm Pipes and Mule ESB have that same feel.  Shell was the ultimate object reuse.

So you would do the painful, slow job of writing C++, even with Rational Rose UML to help guide you, it was painful.  You had to hope you had the correct libraries and that there were free ones.  STL was a great help, but you had to buy a license.  I think we had to buy a bunch of licenses from RogueWave for database stuff as well.  Now Java, Node.Js and the rest have a ton of free libraries for everything.  Which is great, but you have to pick the right one, get it into a build script of some sort (ANT, Maven, Gradle, Rake, SBT, …), combine it with some other libraries and then write some code specific to that library.  With tools like Eclipse and NetBeans, you can automate a lot of that, but even all the libraries and frameworks that help you add bulk and complexities.  More points of failure, not an elegant connection of small tools, but a behemoth of patched together disjoint libraries.

Anyone remember msql ? MySQL and msql competed for awhile and then MySQL crushed it..

The archive of my old Montclair State Website.

Published at DZone with permission of Tim Spann, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Wujek Srujek replied on Tue, 2013/01/29 - 4:49am

Are you sure Eclipse and NetBeans allow you to automate anything? I thought you needed to have the GUI open and clickt buttons / use keyboard shortcuts for everything, and the built tools actually automate dependency management / tests / building / deployments / whatever, name it.

Tim Spann replied on Tue, 2013/01/29 - 9:33am in response to: Wujek Srujek

Eclipse and other IDEs have automation in the sense of Wizards and configuration tools that do a lot of the basic work for you.  There's also plugins to do some things.  You can also have scripts in Maven, Roo, Gradle and Ant that can be run from the IDE to automate things.

And once you have a project setup, some shell code and unit tests and version control configured, Jenkins can automate your build/deploy/tests/...  That first project setup is usually a wizard, template or a github base project.  Spring IDE and JBOSS have some extra templates that really help you get started.   That's still a lot of complexity.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.