Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Too many Perls

Why do people invent new programming languages? In some cases it's for commercial reasons - they want a share of the cake and really they would be far more efficiently employed elsewhere; I guess that languages such as J++ and C# fell/fall into this category, but then that's a personal view that not everyone might share. For sure, such languages can end up being a success, but often at the expense of a different and perfectly good language that was already around.

Other languages (I think we can call Perl 6 a "new language") are a genuine move to new ground - in the case of Perl 6, taking a language that's coming up to 20 years old and using what's been learnt in those last 20 years to provide something designed for the next 20. When Perl was first written, functions like format and write were a vital part of the language and the "." operator was a natural for string concatenation.

Yet other languages fill niches. PHP is a good example; it's (?) the first language to be truly written to provide web site content rather than simply embedding an existing language in web pages or interfacing it through CGI. And the result? For the niche that it's in, it provides a really excellent solution with little compromise to other wider application area - and it's made it big as a result, now being available on about a third or worldwide domains.

PHP's success is based on the premise that it's a web language and modifications, developments and enhancements are aimed in that direction. It turns out that it's also very good for certain stand alone use, and I'll even encourage people to use it stand alone in certain circumstances but that's not its main thrust and to add facilities to the language to improve its support for a non-core use at the expense of its core use would be a mistake. I was, then, very happy to listen to Rasmus Lerdorf talking on this subject last month - to hear him say that the future direction remains the web and that the language is not looking to widen itself into a general purpose computing language. I think he's right; we already have one C and two Perls, and three Perls (one called PHP) would be one Perl too many.
(written 2004-11-30, updated 2006-06-05)

Commentatorsays ...
David Corking:Graham, (serves me right for making a 6 paragraph comment - but Movable Type has trashed all my paragraph breaks)

Your article was really a technical one but I would like to take an aside and follow up on the social and commercial issues you raised, firstly J++/C# meeting a need or competing for existing market, and secondly the issue of PHP sitting alongside other scripting languages.

You wrote "they want a share of the cake and really they would be far more efficiently employed elsewhere; I guess that languages such as J++ and C# fell/fall into this category"

J++ in my view is not a language - it is just a compiler front-end for an existing language the product team dare not mention by name.

C#'s origins, from my reading, seem a little different.

Academics (funded by a big vendor) came up with an extension to the virtual machine concept. Their machine had a Common Type System, that allowed all types (whether value types or reference types) to be shared across running, multi-threaded and even remote modules and code libraries. Java and C++ can't do this, and the code for event-driven callbacks is uninviting. To them this was the start of a whole new generation of large-scale, distributed, run anywhere applications. It may still come true.

So they saw themselves as designing C# to fill a niche. The niche was a language that exploited the features of their Common Type System and made it easy for programmers to do so. They did this by cutting out things from Java and C that broke the model and added simple syntax for features of their virtual machine model that they saw as most powerful. C# is picked up very quickly by C++ programmers, who seem to have fun learning it. I tip it to fill at least one niche - being the C++ replacement on Windows.

I do take your point that they could have been 'more efficiently employed elsewhere'. If the Java community permitted a Java 3 with these features, then they could have used the free time to create more manageable security models for remoting and web services, or to port MFC to Scheme. However, I bet they had fun making C#.

Secondly, regarding PHP's web focus. It bothers me that folks have to learn another language especially for one platform - the web front end. They already need to know XHTML, Javascript, CSS and SQL. But I can't and won't blame the PHP folks for that - and it is too late to fix it.

David

(comment added 2004-11-30 11:48:41)
Graham:David,

Thanks for your comments 6 times over. I wanted to get back with you quickly / yesterday but everything seems to have been happening in the last 24 hour ... so this is really just a holding note. I REALLY WANT to comment back (largely to agree ;-) ) and hope to get a chance in the next 24 hours.
(comment added 2004-12-01 09:42:23)
Graham:David,

I've taken 10 times longer than I should to get back with you on this one.

I think we're broadly saying the same thing on J++; it's "just another ..." (perhaps not a language) where time and resources could and should have been better employed elsewhere.

You have an excellent point on C# - with the extension of the Virtual Machine concept - it's not totally a "me too" language that my original post may have implied. I do, though, still wonder at why we need to have both Java and C# and whether time and effort would have been better employed in using resources to come up with a single language rather than coming up with two which are so close. (And, reading on, I think you make a similar point from another angle, "Java 3"). Of course, the instigators / designers of a language will always be fired with enthusiasm for what they're cretaing so they probably won't be the best judges as to whether it's a good idea.

On PHP, I applaud Rasmus in keeping it on topic as a web language. For sure, the need to learn HTML, SQL, JavaScript and English is unfortunate, but at least you don't have to learn an awkward cgi interface too.

(comment added 2004-12-07 18:35:47)
David Corking:I am not a regular blog commenter - but I understand that commenters are not supposed to expect responses from the author. So thank you for so honouring me.

Your observation, Graham, about language designers not being the best judge about the value of their baby brings us to almost total agreement.

I am not totally familiar with cgi, so I am glad to hear that replacing Perl with PHP on the web gets rid of at least one thing that people hated (cgi that is - not Perl - I don't want to get into that debate.)
(comment added 2004-12-07 20:24:15)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H101 - Introduction to PHP
  [48] PHP - onwards and upwards - (2004-09-14)
  [55] Evening classes to learn PHP - (2004-09-19)
  [93] Case Sensitive? - (2004-10-19)
  [124] PHP v Java - (2004-11-20)
  [132] Portrait of the author - (2004-11-27)
  [317] Programming languages - a comparison - (2005-05-20)
  [341] Happy Birthday, PHP - (2005-06-09)
  [380] Bridging to the customer requirement - (2005-07-16)
  [382] Central London Courses - Perl, PHP, Python, Tcl, MySQL - (2005-07-18)
  [433] FTP - how to make the right transfers - (2005-09-01)
  [577] Learning to program in Perl or PHP - (2006-01-26)
  [624] It's REALLY easy to add a little PHP - (2006-02-26)
  [629] Choosing the right language - (2006-03-01)
  [646] PHP - London course, Melksham Course, Evening course - (2006-03-14)
  [691] Testing you Perl / PHP / MySQL / Tcl knowledge - (2006-04-19)
  [712] Why reinvent the wheel - (2006-05-06)
  [789] Hot answers in PHP - (2006-07-02)
  [795] Remember a site's non-technical issues too - (2006-07-07)
  [846] Is Perl being replaced by PHP and Python? - (2006-08-27)
  [917] Syntax checking in PHP - (2006-11-07)
  [924] The LAMP Cookbook - Linux, Apache, MySQL, PHP / Perl - (2006-11-13)
  [949] Sludge off the mountain, and Python and PHP - (2006-11-27)
  [1050] The HTML++ Metalanguage - (2007-01-22)
  [1198] From Web to Web 2 - (2007-05-21)
  [1717] Q - Should I use Perl or Python? - (2008-07-23)
  [1753] Perl v PHP, choosing the right language - (2008-08-14)
  [1958] PHP - Parse error: syntax error, unexpected $end ... - (2008-12-23)
  [2097] PHP Course - for hobby / club / charity users. - (2009-03-22)
  [3025] Learning to Program ... in PHP. Course examples. - (2010-11-01)
  [4118] We not only teach PHP and Python - we teach good PHP and Python Practice! - (2013-06-18)
  [4621] The power of scripting - (2016-01-12)


Back to
Geekmas - a brief review
Previous and next
or
Horse's mouth home
Forward to
Please tell us
Some other Articles
Just provide a room and the students
Perl - redo and last without a loop
Certification schemes
Please tell us
Too many Perls
Geekmas - a brief review
Tcl embeds
Thanksgiving dinner
Spelling and grammar
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/135_.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb