Domain: perl.com
Stories and comments across the archive that link to perl.com.
Comments · 775
-
Re:over a decade of hard work at getting it right
Unless Larry took features away my guess is he added more identifiers, data types, and other things as that is what he does. I could be mistaken.
If there are now 1,000 statistical combinations to add/substract and print out 2 sets of numbers I think I would not count that as a success.
"Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite of Perl and of the community."
Larry Wall, State of the Onion speech, TPC4 -
Re:GCC etc.
tcsh fails to fix all of the awful syntactic problems with csh. Korn shell is the way to go, particularly now that it's truly free. Vim, yes (On Linux, there's rarely a need to add it manually, though). Password Gorilla, which I use to store all my passwords, is another.
-
Re:Absolutely crap methodology
Perl* Besides, Perl has its own job board: http://jobs.perl.com/
-
perl DBD::WMI, Win32::OLE, Win32::GuiTest
DBD::WMI
Win32::OLE
Win32::WMIC
Win32::GuiTest
Win32::TieRegistry
Win32::Unicode
Win32::API
Inline::C
Perl::Dist::WiX
Win32::MSI::HighLevel
http://search.cpan.org/search?query=win32&mode=dist
http://roth.net/
http://books.perl.org/books
Perl Books - Book: Perl for System Administration
http://www.perl.com/
http://strawberryperl.com/
http://www.cava.co.uk/citrusperl/strawberry.html
google:// site:http://perlmonks.org/ -
Re:After 10 years?
Perl is free form and allows a multitude of approaches to solving problems. One can learn all the syntax and functions and utilities easily by reading through perldoc - just like documentation for any programming language for that matter.
But that would not teach them programming.
The fact is that one constantly advances as a software developer (*). Yet the very same language easily adapts to all the new paradigms, allows trivially to express new ways to code -after all the years- is pretty amazing fit.
Or to put it other way: in Perl number of ways you can do something is equal to the number of Perl programmers. And new programmers always bring something new, something worth learning.
Read on to enlighten yourself.
(*) If you do not - then change the job. Learning new stuff is a part of the job definition.
-
Welcome Rakudo Star
The Welcome Rakudo Star post on the new Perl.com explains some of the motivations for the Star releases and why this is such a big milestone for all of Perl.
-
Llamas?
The concept was introduced at least in 2000, but the inclusion of 'llama' as a warning word may have reduced its effectiveness.
-
Re:Setting expectations
The language may not guarantee secure code, but it can make writing secure code easy.
For instance, using placeholders in SQL makes code virtually immune to SQL injection attacks. If your database does not support placeholders, then the library can simulate it by quoting bad characters when data is passed in.
In Perl, any tutorial on database usage that anybody will point you to will most definitely show you how to use placeholders. The main one is over 10 years old, and it's very first Perl code example uses placeholders, as do all its other examples that run a query against a variable. It was the correct way to do things back then, and still is. DBI makes it very easy to do it right because there are no additional methods to call to make use of placeholders, and the Perl community is good about showing new programmers how to use them.
If you use PHP with PosgreSQL, then you have the pg_query_params() for the job. Why can't pg_query() do it? For that matter, why can't the equivalent function translate placeholders for braindamaged databases that don't use them? Making the programmers handle this with an escape function is inconvenient. Smarter programmers will have their time wasted on writing frivolous string escaping code, and more noobtacular programmers won't even know what it is or why they should be doing it.
It's entirely possible to write it correctly in PHP, but languages don't differer in what they make possible; they differ in what they make easy. Writing secure code should be much easier than it is.
-
Why *reboot*? Perl & Python *do exist* for Win
This being
/. though, I'll have to mention a small customized LiveCD (think DSL sized) with a (perl script | python script | brainfuck implementation | emacs extension | vi/vim script | whatever)Why reboot onto a CD ?!?
Python, Perl, and the likes are all freely available on Windows too.
Several even features way to pack everything needed (Run-time env + your script + its dependencies) into a single installer or executable.I would definitely vote for them as they are widely available language on lots of different platform and each feature huge collection of extensions.
(As are Visual Studio Express and Monad PowerShell if you deffinitely need a pure Microsoft solution while trading some freedom and portability)
-
For every action...
Apple fanboy sees all negative observations as complaints, and ends his post with a question where he is wondering why anyone would ever publicly make negative observations about Apple or Apple Products.
And in turn, the anti-fanboy sees any positive observations--heck, in some cases, any observation at all--as threats to the legitimacy of his alternative of choice.
-
Re:How will Microsoft spin this?
I'd love to be proven wrong.
Well, Perl doesn't use the GPL, it uses the Artistic License, which is slightly different.
That said, Microsoft uses Perl throughout their build environments. It's unlikely that they would ever attempt to remove it.
So, if their ranting and raving is targeted at "the GNU GPL" then that's one thing; however, if they're targeting "open source" or "free software", then they are hypocrites.
-
Re:This has taken too long
More than that--- Perl 6 was announced 9 1/2 years ago! Even O'Reilly's Perl 6 Essentials is now 6 1/2 years old, and some Perl 6 books are into 2nd editions.
-
Re:Reinventing the wheel is sometimes good
-
The original Parrot was an April Fool's jokeThe original Slashdot article from almost 8 years ago: Perl + Python = Parrot.
It included a mock press release: Perl and Python Announce Joint Development.
And a joint "interview" of Larry and Guido.
O'Reilly Media even tossed in a bogus book announcement: Programming Parrot in a Nutshell.
A few days later, O'Reilly published The Story Behind the Parrot Prank.
The name was eventually adopted by this project.
-
Re:Wishlist
Some of the other languages fix some of the Perl "shortcomings". In particular I like Python's object system.
Perl 5's object system came from Python. See Larry Wall's Programming is Hard, Let's Go Scripting:
I'm not terribly qualified to talk about Python however. I don't really know much about Python. I only stole its object system for Perl 5.
-
Re:Bad equipments makes for good scientists
...turns out python objects are just a subset of perl's object method. Under the hood they work identically. i.e. pythons __dir__ is the same as a blessed hash in perl. python's slots are the same as a blessed array in perl. You just don't get to see them in action in python but they are there lurking underneath.
You've got that backwards.
From http://www.perl.com/pub/a/2007/12/06/soto-11.html:
Python
After Tcl came Python, which in Guido's mind was inspired positively by ABC, but in the Python community's mind was inspired negatively by Perl. I'm not terribly qualified to talk about Python however. I don't really know much about Python. I only stole its object system for Perl 5. I have since repented.
-
Re:Show attached block devices
Harah for vi mode!
'diff' - compare two files, list differences
'tr' - text replace... replaces all instances of a character in the input stream with a different one in the output.
'touch' - update timestamps on a file, or create it if it's not there
At my last job I dealt with a lot of HIPAA compliant medical files... All tilde delimited with no endlines. I ended up writing a bunch of perl scripts that piped the files through tr to replace tildes with endlines, then do something useful such as grep, or parse the files with regexes. Perl also has special variables for the field record seperators, which you can set to change the endline character that it reads ( $/ ) and writes ( $\ ). If you're ever working with delimited files with no endlines, this can be a lifesaver... just set both variables to your delimiter, and it handles all the conversion for you. -
Re:this guy didn't do any research
From Larry Wall's 2007 State of the Onion:
I'm not terribly qualified to talk about Python however. I don't really know much about Python. I only stole its object system for Perl 5. I have since repented.
-
Re:heyho, python - the new perl.
What the hell do you think HTML, XML, news stories, book descriptions, and reviews are? Are they not text?
Yahoo Shopping was written in Lisp. It was later rewritten, in sections at least, by a mixture of C++ and Perl. They wrote a Lisp interpreter in C++ to facilitate this.
Yahoo would have never happened without Perl.
Slashdot already ran a story about the BBC making a Rails-like framework for Perl because they liked Rails but prefer Perl as a language. The article at that second link says they're pretty dedicated to Perl for their whole Web infrastructure.
Amazon (for Amazon.com's own site) uses Mason (a Perl website templating system) as their official web development template system, and they're hiring for people with that skill set. They do use a lot of Java, too, apparently, but Perl is an important part of the site.
IMDb uses Linux, Apache, Perl and mod_perl to run pretty much the whole site, and is part of Amazon.
Google is using quite a bit of server-side JavaScript -- on the JVM as a replacement for Java in many cases.
Google uses C++, Python, and Java for most public-facing sites, and much of the management of the systems is done with Python.
This Google job (for a software engineer) lists C++ as a must and Python as a plus. This other job (for a software engineer) requires both one or more of C, C+, or Java and one or more of shell, Perl, PHP, or Python.
The nation of Scotland used Perl to migrate millions of land records between systems, which certainly is data munging, but a pretty important bit of it.
It was way back in 1999, but Agilent used Perl to build their big customer-facing e-commerce site.
Booking.com (part of Priceline) uses primarily Perl to run their site.
This PowerPoint presentation says Morgan Stanley in 2004 was using Perl written by over 500 developers on over 9000 (no, that's not a
/b/ ism) systems to keep their network running smoothly, for a web front end development language, to develop middleware, and to develop backend applications.ValueClick and TicketMaster make much use of Perl, too. That's along with the content management system -- Bricolage -- used by the Dean for President campaign, ETOnline, and the World Health Organization being written in Perl. You may have also heard of MovableType, which is a serious CMS from Six Apart. Or maybe you've heard of a site that runs it, called The Huffington Post, who right now is looking for someone to work on it?
-
Re:Ockham's Razor tells me....
If only there was somewhere to rate CPAN packages...
Also, there are comp.lang.perl.misc and comp.lang.perl.moderated for Usenet, PerlMonks, Use Perl;, Perl.com, and many IRC channels, books, and mailing lists.
There are specific threads on Perlmonks about how to make it easier to choose which object-relational mapper, which text templating system, which web application framework, which object system, which date and time modules, and which modules for any given task.
Anything you want to do has two or three more popular, better documented ways with more community support and a host of other ways just in case. The community does a very good job of recommending one or two over the others.
-
Re:I have to get one of theseI'd rather stick knitting needles in my eyes than debug a regular expression.
The only cure for that is getting a good reference and having a go at some tutorials until you get good enough to slay the beast. Then you'll be everyone's buddy at the office, because a lot of people feel the same way. It's not all that hard if you format them properly with /x first.
If you're using Perl anyway, dunno if others have that feature too. I don't need anything but Perl :) -
Perl 6 as a Cautionary Tale ...I'd like to focus on the author's comments about rewriting vs. refactoring. From July 25, 2000:
Last Monday, nobody knew that anything unusual was about to happen. On Tuesday, the Perl 6 project started. On Wednesday, Larry announced it at his "State of the Onion" address at the Perl conference.
It's one thing to decide to rewrite rather than refactor a product that is losing market share because it is not performing as well as its competitors. (E.g. Netscape.) It's another thing to decide to rewrite (and redesign) rather than refactor a wildly successful and popular product because its continued development has become difficult. Just shy of eight years later, Perl 5 is still creaking along nicely, and Perl 6 (White Elephant Service Pack) is still under design as much as development.
Is Perl 5 so hard to refactor that a determined effort couldn't have made progress, or been completed twice over, in 8 years? Along the way, a lot of the cruft and inelegance in the language could have been removed, and more elegant features inserted.
It happens over and over again - developers, even experienced ones, can't see the impracticality of what they're getting into, and can't see that they're doing work that isn't needed. -
Re:We need a name for the combined company.
It's a regular expression. In a nutshell:
s/ORIGINAL/REPLACEMENT/
For a given text with that applied, the string "ORIGINAL" is replaced by "REPLACEMENT". There's more to it, but that's all you need to get the joke.
Here's the Perldoc page on them, if you're interested. -
Re:PHP5
I use PHP because it is what I got into and I have not yet had the time and/or drive to really try anything else. PHP is so available and that is its real strength. It's biggest problem is those lazy folks who are still running 4.2.x or some branch that is or is to be discontinued very soon here. As well there are some known exploits and issues in the older branches.
PHP's advantage is an easy learning curve, so it is easy to pickup (no cheap jokes about fat women, please). Larry Wall described that as [PHP] takes the worse-is-better approach to dazzling new depths.
With that kind of raison d'être it shouldn't be surprising it is hard to get users to embrace new versions.
-
Re:Holy cow!
Closures and lambdas can be faked using objects and named functions.
How do you fake anonymous lambdas? Of course our models of computation are all equivalent if you throw out any abstractions, but beware the Turing Tarpit.
Perl5 OO is dog food, yet Perl 5 library authors consistently use it to define their library interfaces.
"I don't really know much about Python. I only stole its object system for Perl 5. I have since repented." Larry Wall, Programming is Hard, Let's Go Scripting...
Actually, the idea is that you can know enough about Python to work competently with Python code and still have enough brainspace left over to be an expert in something besides programming.
I prefer to hire people who are good at programming to write and maintain code I care about. I find that they tend to write better, more maintainable code. Novices tend not to write good code.
-
Re:Hmmmmmm
Before Christmas.
http://www.perl.com/pub/a/2002/09/p6pdigest/20020915.html?page=5 -
Happy Anniversary!
Happy Anniversary, Larry!
Everyone, please don't forget to wish a Happy Anniversary to Randal L. Schwartz and Tom Christiansen. The three of these gentlemen have created the Perl we all know and love.
I have been blessed with the opportunity of going to week long Perl classes with all 3 of these (well, Tom & Randal. Larry just came for lunch :) gentlemen/gods.
Merry Christmas one and all! -
Re:Looks good, but a little hampered by C++
Not a lot of point in trying to do something because it is technically cleaner and neater if it ends up unreadable and therefore unmaintainable (for that, there is always Perl).
Actually, Perl's syntax for closures is pretty readable! -
Re:Legally Never Happened
If anyone knows how to fix it (and turn it into a one-liner in the process) Randal Schwartz does.
;-) ...using map, no doubt. Congrats on a significant victory, Randall!something like
map({open IN, "<$_";open OUT, ">$_.tmp";foreach $line(<IN>){ $line=~s/Randal Schwartz/Bill Gates/i; print OUT $line; }close IN; close OUT;rename($_.tmp,$_)},["terrorist_watch_list.txt
" , "no_fly.doc", "fbi_persons_of_interest_list.ppt"]);Assuming of course, his name is in plaintext in the doc and ppt files... otherwise, just need to pass it to something that can filter those to text and back.
Tm
-
Re:Legally Never Happened
If anyone knows how to fix it (and turn it into a one-liner in the process) Randal Schwartz does.
;-) ...using map, no doubt. Congrats on a significant victory, Randall! -
Re:Cryptic? Complex!?
Well most languages have these things called functions, you can use them to do your own string functions.
Yay! Let's reinvent the wheel by writing 10, 20, or more lines of code for something regular expressions would be able to handle in one. Furthermore, let's claim this is done for the sake of keeping the code 'pretty,' because it's far too embarrassing to admit that we don't really understand how to use regular expressions!
Other Languages have a bunch of well performing string functions so I don't need to program them myself.
Hmm, like string functions that allow the use of regular expressions to make your string manipulation quick, efficient, and useful?
Yes, regex can be an odd concept to deal with at first, as they tend to be quite a bit more succinct than the languages you're more familiar with. Are you aware, however, that regular expressions can contain comments and extra whitespace?
Maybe you're paid by the line of code, or am attempting to squeeze in every extraneous hour of programming to inflate your consultant fee. If that's the case, I would certainly recommend avoiding regular expressions; they save far too much time and work entirely too well.
-
WTF?
Pudge
Pudge's projects
Maybe it's you, who's arrogant. -
Re:Don't use shell
Use a modern programming language, such as Python
I prefer postmodern languages such as Perl -
Re:I know I'll get modded down for this:
never ever ever ever let someone learn perl as their first langauge
Simon Cozens makes a good case for Perl as a first language:
There's nothing about Perl that is difficult to understand if presented appropriately; the difficulty is presenting some of the concepts in an appropriate way, and that's a question about how good the teacher is, not the language
If you want the students to be able to start managing and manipulating data quickly, then Perl is a plausible way to go. Even if you want to teach the fundamentals of computer science, Perl is at least as suitable as any language to illustrate the concepts.
For students who don't go on to do CS degrees, the language they learn in high school may also be the last language they learn. For non-professional programmers, Perl is the only language they'll ever need. The same is probably equally true about Python, Tcl and other real-world languages so the question may simply be which one does the teacher know the best.
There are probably no bad languages to learn first, just bad teachers. If the teacher were bad, C would probably not be the first language you would want the students to encounter.
-
Re:Sleep vs HibernateAgreed, but you don't have a choice. When you close the lid you sleep and there is no hibernate.
Haven't you ever started a hibernate, closed the lid before you were done and when you opened the lid you completed the hibernate and had to power up the computer again to come back from hibernation?
Having only one choice can be better (i.e. when I said "Done" I meant, that's it, that's all you can do). It sounds like Vista is starting to become (if you'll excuse a reference to Larry Wall) as much of a post-modern operating system as linux/unix.
-
Re:Re-inventing a square wheel
Indeed. For most of my simple spidering needs I've found Perl's WWW::Mechanize to be a dream. I say what I mean: go get this page, find a link labeled "Today's Story" and follow it, on the resulting page find the second form and fill in the username and password fields with $username and $password, click submit, return the resulting page. I've found it useful for scraping sites with regular updates that have unpredictable URLs but constant links. Perl.com's "Screen-scraping with WWW::Mechanize" is a good introduction, then check out the full documentation.
-
Re:Me too!
How frequent is it? I could come up with a whole article full of criticisms of Perl 5's design and implementation (What is Perl 6 is a start). I wouldn't have seen everything Larry has seen, for example, but he's a lot better at designing languages than I am.
My experience is that a lot of project have wishlists with big and small items. Granted, the big items tend not to be radical rethinkings (as in the case of Perl 6), but I'm not sure it's as insular as you might think.
-
Re:Perl 6 might be great... not.
To quote Larry in Apocalypse 3:
The basic problem is that the old ?: operator wastes two very useful single characters for an operator that is not used often enough to justify the waste of two characters. It's bad Huffman coding, in other words. Every proposed use of colon in the RFCs conflicted with the ?: operator. I think that says something.
If you haven't been keeping up, one of Larry's basic premises in Perl 6 is to improve the "Huffman coding" of the language: things that people use every day should be easy to type, and things that people use infrequently should be harder to type. There's only a finite number of punctuation marks to use for operators, so something has to give.
For instance, the change from -> to
. is a big win because method calls are heavily used. The change will save a bit of typing, cut down on typos (>-, -. and the like), and help the C++ and Java refugees figure out what's going on. However, in the process it ousts the string concatenation operator, which gets stuck playing musical punctuation since it's not as frequently used.Similarly, the change from (?:...) to [...] is a big win. In a regex, non-capture grouping is an extremely common operation, but it looks like line noise in Perl 5. You can just use plain parens to create capture groupings, which are easier to type and read, but now your regex uses more memory to run and might take much, much longer to run. (We're talking about optimizations that can cut match time from days to seconds in some extreme cases. Captures don't actually fit very well into the finite automaton model that underlies the regex.) In comparison, while character ranges are still occasionally useful, they're going out of fashion thanks to Unicode, and they're hogging some valuable punctuation real estate. The change from [A-Z] to <[A-Z]> or <Upper> , while breaking compatibility in a major way and making character ranges less handy, frees up some punctuation to make other things more handy (and gets rid of the ugly \p{Property} construct to boot).
Finally, to address your main complaint, the change from a ? b : c to a ?? b
:: c frees up both the question mark (possibly for a new boolean cast operator) and the colon ("Larry's First Law of Language Redesign: Everyone wants the colon") while making an ugly and infrequently used operator look more visually distinctive and less confusing to read. That's a huge win in my book. It's not hypocrisy; it's what Larry's been promising all along for Perl 6. -
Re:Perl 6 might be great... not.
To quote Larry in Apocalypse 3:
The basic problem is that the old ?: operator wastes two very useful single characters for an operator that is not used often enough to justify the waste of two characters. It's bad Huffman coding, in other words. Every proposed use of colon in the RFCs conflicted with the ?: operator. I think that says something.
If you haven't been keeping up, one of Larry's basic premises in Perl 6 is to improve the "Huffman coding" of the language: things that people use every day should be easy to type, and things that people use infrequently should be harder to type. There's only a finite number of punctuation marks to use for operators, so something has to give.
For instance, the change from -> to
. is a big win because method calls are heavily used. The change will save a bit of typing, cut down on typos (>-, -. and the like), and help the C++ and Java refugees figure out what's going on. However, in the process it ousts the string concatenation operator, which gets stuck playing musical punctuation since it's not as frequently used.Similarly, the change from (?:...) to [...] is a big win. In a regex, non-capture grouping is an extremely common operation, but it looks like line noise in Perl 5. You can just use plain parens to create capture groupings, which are easier to type and read, but now your regex uses more memory to run and might take much, much longer to run. (We're talking about optimizations that can cut match time from days to seconds in some extreme cases. Captures don't actually fit very well into the finite automaton model that underlies the regex.) In comparison, while character ranges are still occasionally useful, they're going out of fashion thanks to Unicode, and they're hogging some valuable punctuation real estate. The change from [A-Z] to <[A-Z]> or <Upper> , while breaking compatibility in a major way and making character ranges less handy, frees up some punctuation to make other things more handy (and gets rid of the ugly \p{Property} construct to boot).
Finally, to address your main complaint, the change from a ? b : c to a ?? b
:: c frees up both the question mark (possibly for a new boolean cast operator) and the colon ("Larry's First Law of Language Redesign: Everyone wants the colon") while making an ugly and infrequently used operator look more visually distinctive and less confusing to read. That's a huge win in my book. It's not hypocrisy; it's what Larry's been promising all along for Perl 6. -
Re:Me too!
There are some good explanations around about why they're rewriting perl.
FWIW, this is set of features that are being implemented in Perl 6 that Perl 5 lacks:
explicit strong typing
proper parameter lists
active metadata on values, variables, subroutines, and types
declarative classes with strong encapsulation
full OO exception handling
support for the concurrent use of multiple versions of a module
extensive introspection facilities (including of POD)
LL and LR grammars (including a built-in grammar for Perl 6 itself)
subroutine overloading
multiple dispatch
named arguments
a built-in switch statement
hierarchical construction and destruction
distributive method dispatch
method delegation
named regexes
overlapping and exhaustive regex matches within a string
named captures
parse-tree pruning
incremental regex matching against input streams
macros (that are implemented in Perl itself)
user-definable operators (from the full Unicode set)
chained comparisons
a universally accessible aliasing mechanism
lexical exporting (via a cleaner, declarative syntax)
multimorphic equality tests
state variables
hypothetical variables
hyperoperators (i.e. vector processing)
function currying
junctions (i.e. superpositional values, subroutines, and types)
continuations
coroutines -
Re:Me too!
There are some good explanations around about why they're rewriting perl.
FWIW, this is set of features that are being implemented in Perl 6 that Perl 5 lacks:
explicit strong typing
proper parameter lists
active metadata on values, variables, subroutines, and types
declarative classes with strong encapsulation
full OO exception handling
support for the concurrent use of multiple versions of a module
extensive introspection facilities (including of POD)
LL and LR grammars (including a built-in grammar for Perl 6 itself)
subroutine overloading
multiple dispatch
named arguments
a built-in switch statement
hierarchical construction and destruction
distributive method dispatch
method delegation
named regexes
overlapping and exhaustive regex matches within a string
named captures
parse-tree pruning
incremental regex matching against input streams
macros (that are implemented in Perl itself)
user-definable operators (from the full Unicode set)
chained comparisons
a universally accessible aliasing mechanism
lexical exporting (via a cleaner, declarative syntax)
multimorphic equality tests
state variables
hypothetical variables
hyperoperators (i.e. vector processing)
function currying
junctions (i.e. superpositional values, subroutines, and types)
continuations
coroutines -
Re:Me too!
There are some good explanations around about why they're rewriting perl.
FWIW, this is set of features that are being implemented in Perl 6 that Perl 5 lacks:
explicit strong typing
proper parameter lists
active metadata on values, variables, subroutines, and types
declarative classes with strong encapsulation
full OO exception handling
support for the concurrent use of multiple versions of a module
extensive introspection facilities (including of POD)
LL and LR grammars (including a built-in grammar for Perl 6 itself)
subroutine overloading
multiple dispatch
named arguments
a built-in switch statement
hierarchical construction and destruction
distributive method dispatch
method delegation
named regexes
overlapping and exhaustive regex matches within a string
named captures
parse-tree pruning
incremental regex matching against input streams
macros (that are implemented in Perl itself)
user-definable operators (from the full Unicode set)
chained comparisons
a universally accessible aliasing mechanism
lexical exporting (via a cleaner, declarative syntax)
multimorphic equality tests
state variables
hypothetical variables
hyperoperators (i.e. vector processing)
function currying
junctions (i.e. superpositional values, subroutines, and types)
continuations
coroutines -
Bricolage
Bricolage has a lot of what you're looking for, and it's very well built.
Here is a good intro to what it is and how it works.
-
Re:Where to start
It is IMHO a bad idea to learn C directly before C++. Good style C programs are usually bad style C++ programs, so you'll have to "unlearn" a lot of habits from C. OTOH, when learning C++ first, then it will be easier to go to C, because the compiler will usually complain if you use C++-typical idioms.
If you insist on learning C first, it's probably a good idea to learn Java before C++, because that way I think it's easier to get into OO habits.
It may even be a good idea to have some LISP experience before going to C++, because some advanced template techniques are basically functional style (I guess that's why many people shy away from those).
BTW, I guess you meant Perl, not Pearl. -
Re:better regexes ? not likely
negative lookbehind of non arbitrary length.
see
http://www.perl.com/doc/manual/html/pod/perlre.htm l
-- quote --
(?!pattern)
A zero-width negative lookbehind assertion. For example /(?!bar)foo/ matches any occurrence of ``foo'' that isn't following ``bar''. Works only for fixed-width lookbehind.
-- end quote --
quote from file pattern.txt from Vim builtin documentation
-- quote --
\@! Matches with zero width if the preceding atom does NOT match just
before what follows. Thus this matches if there is no position in the
current or previous line where the atom matches such that it ends just
before what follows. |/zero-width| {not in Vi}
Like '(?!pattern)" in Perl, but Vim allows non-fixed-width patterns.
The match with the preceding atom is made to end just before the match
with what follows, thus an atom that ends in ".*" will work.
Warning: This can be slow (because many positions need to be checked
for a match).
Example matches ~
\(foo\)\@!bar any "bar" that's not in "foobar"
\(\/\/.*\)\@\!in "in" which is not after "//"
-- end quote --
This is just ONE example. -
Re:Why Should Sun Do This?> So what exactly is the problem?
The problem, exactly, is that SUN only implements its JDK on the platforms it judges as "interesting enough". Running a non-mainstream OS on some non-i386 hardware will always end up with you unable to run any SUN JDK -> simply doesn't exist. Well, Blackdown can help and hacking and going all sort of self-punishment you might end up in getting it to work, but well, compare the number of platforms GCC or Perl run on, and compare the number of platforms supported by SUN JAVA, and well, you'll see that SUN JAVA's portability is purely theorical. Now the usual answer "but nobody does this!". Some vendors, and SUN is no exception, are very smart at knowing what people want, without even asking them. Should you want to do something they didn't plan, you cease to exist.
Now it's perfectly true people have the specs, people are free to implement. Look at the efforts made by GCJ and Classpath and you'll see that even with many talented developpers involved, it's hard to catch up with SUN.
What could SUN benefit? Obviously, get many free software developpers to get interested in Java at all. Many software developped in C++ could have gone the Java way, if there had been a way to run Java programs freely, using the *latest* JDK. For now, people have to beg SUN (and possibly IBM) to port the JDK to this or that platform to get a chance to run their Java 1.5 program on *any* platform. Not to mention the fact that some people care about freedom and the right to know what they are running on their computers...
IMHO, SUN will publish Java under a Free (as in freedom) and/or Open Source licence the day the concurrent implementations (GCJ,Kaffe,Classpath...) will catch up. On that day SUN's JVM will have absolutely no added value but the stamp "this is SUN software" (which is what counts more for many). Think of Motif, it got free the day GTK and Qt/KDE where ahead of it. Same for OpenSolaris which comes at a time the Linux kernel is pretty advanced in term of features and is obviously (even if not technically fully equivalent) taking significant market shares so that, well, Solaris is dead.
Sun will "Open Source" Java the day it's dead, because another "Open Source" project took the lead. So if SUN ever publishes a free software JDK, you could interpret this as a signal that means something like "GCJ+Classpath is ready for production use".
-
Re:Will they open documents?
You might say that Perl grew out of the Cold War. I've often told the story about how Perl was invented at a secret lab that was working on a secret NSA project, so I won't repeat that here, since it's no secret. Larry Wall
Perl is actualy a big chunk of how the www as we know it works right now, even ASP and PHP can be considered alternatives to it on the web. I use Perl for some pretty heavy-duty data crunching and consider it taxmoney well spent. -
Re:How about Catalyst?
I'm a c/perl guy and don't know catalyst but wrote some sites in perl using html::template and I just read http://www.perl.com/pub/a/2005/06/02/catalyst.htm
l ?page=2 for a short tutorial.
I also just made my first rails website in 10 days, this includes a cms and also an elobarate scheduling app as well as some other stuff like user manager etc. This also includes the time to learn the language and get my head around concepts. The major problem with rails is documentation, there is just to much of it scattered around and should be organised more. But with the rails api website, the ruby docs and some tutorials you will get there.
The last 2 days was just finetuning what the customer wanted. From the tutorial I would say rails is easier to read. I think perl has more power over ruby, just as C has more power over Perl as you can go more low level with it. But ruby/rails is much easier to read and even less to type.
I will still remain to use C and Perl for a lot of stuff. But when it comes to websites / web applications I will stick with rails. I can't see myself turning back. Maintaining and extending code is dead easy also the ajax integration is great. -
Re:Why?
-
Re:10 Years Overdue
Short memory chromatic.
:) Chip announced Topaz at OSCON '98 ( see http://www.perl.com/pub/a/1999/09/topaz.html which, you might notice, reads and awful lot like the perl6 article) but as I recall he was working on it before then. Oh, the fun days of watching him post to usenet about rewriting the linux kernel in C++ along with topaz.... Given that he was brought up short in 2000 by those who thought he took too long it seems a bit amusing that those same people now bristle when it is pointed out that, well, maybe it has taken too long and no one cares or believes anymore.