http://www.perlmonks.org?node_id=923999

It was twenty years ago today, Sgt Pepper taught a band to play...

Actually, my name is Peppler, not Pepper, and I was never a Sgt... but what I did was to ask for beta testers for sybperl on September 3 1991 (http://www.peppler.org/clp.announce.txt) and I'm really amazed that I should still be involved with perl (even if only very peripherally) 20 years on....

I first came across perl at the SD90 conference in Oakland in late January or early February 1990. I had recently changed jobs, going from MSDOS to SunOS, and being rather confused by all the tools (sh, sed, awk, etc). At the conference a fellow called Rob Kolstad did a presentation on perl - and I was immediately hooked.

When I got back to the office I proceeded to download the package (no IP connectivity back then - I had email access via good old uucp, so I sent email requests to an automated mail server that could reply with the uuencoded package...) I immediately saw the interest in linking perl with the database back end (Sybase, in my case), and when Larry added the pipe() call soon afterwards I wrote a simple module that started an isql sub-process and wrote to it/read from it via a couple of pseudo-ttys.

Then in the summer of 1990 Larry released the usersub mechanism (we're still talking perl 3.x here), and it was obvious to me that you had to link the Sybase library directly. My first version had a single connection, would use your Unix log-in, and a null password. I also ran into a problem where the Sybase dbcmd() call wouldn't work, so I hacked a bit of code to simulate it.

About a year later I made sybperl public, and the dbcmd() issue was identified by Teemu Toorma as a conflict between DB-Library and perl, where both defined a function called safestr(). I fixed that by editing the uperl.o file to change _savestr to _psvestr.

A couple of years later there started to be some noise about having a standard API for database access layers - the initial folks that started that discussion were Buzz Moschetti (interperl), Kevin Stock (oraperl) and a few others (this is before perl 5). Tim Bunce came on the scene not long after that, and did most of the heavy lifting for what was initially called DBperl, but became DBI.

The rest, as they say, is history....

Up until the early 2000s I still did a lot of perl work, but for the last 5/6 years it's been mostly SQL and lately a bit of java. It's been increasingly difficult to sit down and delve into the DBD::Sybase or Sybase::CTlib, which is a bit unfortunate, even though these modules are for the most part mature and don't require much work. If you're reading this and you think that you'd like to maybe take over one or more of the CPAN modules that I "own" then feel free to contact me...

Anyway - it's been twenty years, and I thought that was worth a meditation (at least :-)

Michael

Replies are listed 'Best First'.
Re: sybperl @ 20
by hossman (Prior) on Sep 03, 2011 at 18:20 UTC

    In the summer of 1994, I arrived at UC Berkeley as a new freshman moving into the dorms. My first priority -- before buying books, or finding the laundry room -- was to find the UC Berkeley Office of Residential Computing (aka: ResComp). This was a student staffed department of about 8 people responsible for managing the ethernet network recently installed in 5 dorm buildings (including mine) and providing software/hardware tech support for students using that network. At the time, they were keeping track of port assignments using an excel spreadsheet, and keeping all helpdesk records using paper forms on clip boards.

    In the summer of 1995, ResComp more then doubled the number of dorm buildings that had network, and I was coming to work as a new staff member. ResComp's budget had increased, and they were getting a new AIX Server along with a license for the whatever the Sybase DB server of the day was. Two of the existing staff members had been promoted to "programmers" and were implementing CGI based web tools so the support staff members could keeping track of all the records (port assignments, helpdesk requests, duty log hours, etc...) from anywhere on the net.

    The thing to realize: At this time, anyone learning programming at UC Berkeley was learning to write Lisp and C -- but all of the tools being built at ResComp used Perl. Perl was already the language du-jour for writing CGIs at this point, so it wouldn't have been too surprising for the student programming staff to go out of their way to learn Perl to implement the CGIs, but I'm fairly confident that if it hadn't been for Sybperl, they never would have bothered. They would have just written all the CGI apps in C.

    I learned Perl, and got involved with the Perl usenet community, because I was working at ResComp. The first Perl script I ever wrote from scratch (other then to cut/paste/tweaking examples from comp.lang.perl.misc) was HOSSI, a recreation of Martijn Koster's CUSI for Berkeley specific services. I was already majoring in Computer Science, but as a freshman I really hadn't picked up very much software "style" yet -- just good fundamentals. Writing Perl code at ResComp is how I learned to design software to meet objectives, and not just implement specific algorithms that I'd read in a book.

    So... I'm pretty sure .... if it hadn't been for Sybperl, I wouldn't have learned Perl when I did (if ever) and I wouldn't have become the (same) programmer that I did. Who knows what my career would have been like if I hadn't learned what I learned when I learned it.

    So thank you Michael. Thank you for Sybperl, and thank you for your significant impact on making me the man I am today. I can't imagine what my career would have been like otherwise.

      Thanks you, and JavaFan!

      One of my most memorable perl related moments was the first perl conference (1997, I think) in San Jose. Pretty much everyone was there, and it ended with a party at Larry's house. That's where I realized that as a programmer I wasn't in the same league as Mark-Jason Dominus, Damian Conway and many others (not to mention Larry, but then I already knew that :-) - people who have broader vision and maybe a deeper understanding of what perl and its infrastructure needed to achieve. I guess that as a programmer who hasn't got a CS degree (I majored in Geography, and that was an Economics/Social Sciences degree, not a BS) I tend to see the immediate practical needs more than the broader requirements.

      All in all though being involved in the perl and Sybase communities has taught me most of what I know, and has also given me the opportunities that I had (I moved to CA from Switzerland because of my perl/sybperl "skills", and I now have a job at a large financial institution in Geneva because of the things that I have learned and explained to others regarding Sybase...)

      Michael

Re: sybperl @ 20
by JavaFan (Canon) on Sep 03, 2011 at 19:23 UTC
    In the second half of the '90s, Sybperl (Sybase::DBlib, IIRC) allowed me to grow from "have never connected to a database", to "senior dba in charge of 400+ databases running on 40+ servers" in less than 2 years time. Too bad I haven't had the chance to use Sybase in the past decade. DB2, MySQL and Oracle aren't much fun after Sybase. A previous gig gave me the opportunity to connect to MS-SQL using DBD::Sybase, but that was just for a handful of Nagios scripts that needed to be developed.

    Thank you, Michael. Not just for your Sybperl, but also for your contributions in various forums (comp.database.* for instance). I hope you'll be posting a similar meditation 20 years from now.

Re: sybperl @ 20
by koolgirl (Hermit) on Sep 04, 2011 at 13:54 UTC

    ++ mpeppler What amazing contributions and acheivments, I'm humbled. I see so many monks on here, that have accomplished such amazing contributions to Perl and the world of IT as a whole, and I'm simply dumb-founded. I'm still struggling just to de-bug my little scripts, lol. I hope mpeppler, that 20 years from now, I will be able to meditate on a contribution of my own, that reaches just half of your contribution and your meditation. :)

    For all the monks here who have written so many wonderful books and modules, and the site administrators of Perl Monks , and any of you who have contributed inspiring sweat-lined work to our community, I believe I speak for all novice/newbie/rookie/noob/beginner out there, when I say Thank You for all the hard work you've done, to lay the path we are on now, which while y'all may have found it a winding, shadowy unknown dirt road, it's now paved with remarkable tools and techniques - you've turned it into a major 4 lane highway! So now we can go farther than we could have, without the blood, sweat and tears (and countless days coding in a basement with scarce food, no sleep, way too much coffee awaiting a nervous breakdown that you never had time to have lol) of those veterans who built this road for us.

    OK, Sorry, didn't mean to go on that much of a rant, thanks though, really. All of you inquiring minds out there that paved the way for the IT explosion today.


    "The unexamined life is not worth living." -- Socrates

    "The idea, is to make a compromise, somewhere between your ambitions, and your limitations." -- The Teahouse of the August Moon

      ...blood, sweat and tears (and countless days coding in a basement with scarce food, no sleep, way too much coffee awaiting a nervous breakdown that you never had time to have lol)...

      You just summed up my last three weeks of work in one sentence!

Re: sybperl @ 20
by Tux (Canon) on Sep 05, 2011 at 09:03 UTC

    Nice story, and so much to compare.

    I started out with perl4.036. perl5.001m was just out and all articles I found referred to the need to upgrade, but as a company we only had dial-in internet connection which was allowed just for mail and vital system patches. So I was allowed to order the perl4 CD from a company in the US. I built perl4 for HP-UX 7 and soon after started to integrate Unify database support into it - after reading that Oracle and Sybase already managed to do so.

    My colleages soon got enthousiastic, as we now did not have to write C programs anymore, but could - with some restrictions - write perl to access the databases and convert data from various sources into Unify and make quick selections into hashes. Wow, what a relief.

    After perl5 got mainstream, I waited 7 years hoping someone else would write DBD::Unify, as I did see that DBI was the way forward. We kept using uniperl all those years.

    Then I grabbed all existing DBD drivers and compared what approaches were available and how I could copy the work Tim and people like you did on the already existing DBD's and wrote DBD::Unify. I still maintain it, and we use it in the company every day, multiple times a day, but we are also moving away from Unify, as their support sucks and PostgreSQL has a mature relational database by now that is capable to replace Unify without losing too much functionality. Our focus really shifted over the years. In perl4 era it was just Unify. Now our main databases reach from PostgreSQL through Oracle to plain CSV files or SQLite storage.

    Perl certainly enabled me to widen my database knowledge.


    Enjoy, Have FUN! H.Merijn
Re: sybperl @ 20
by herveus (Prior) on Sep 06, 2011 at 14:31 UTC
    Howdy!

    Back in the latter half of the 1990s, I was working as a Sybase DBA/Designer and making extensive use of Perl. Fast forward to today and I am back at that same job being a Sybase DBA, and am trying to use Perl as much as I can manage. Thanks for Sybperl, &c.

    yours,
    Michael
Re: sybperl @ 20
by Anonymous Monk on Sep 04, 2011 at 02:10 UTC
    "You can try to give away your modules any time you like, but you can ne-ver leave ..."
      Indeed :-)

Re: sybperl @ 20
by Anonymous Monk on Sep 07, 2011 at 20:44 UTC
    As soon as I saw your userid I was like I remember that guy. Yep. I started using perl and sybperl simultaneously in Feb 2000. Thanks. I learned perl, and used your program to extract data and create reports for my employer. I will never forget those two years, it was alot of fun writing those perl programs.