Something For (Almost) Every Developer
First up, reader martinjlogan sends along a tutorial for setting up a workable Erlang/OTP development environment on a Mac. Next, reader acid06 notes news of Perl 5.12, including what may be the first delivered fix for the Y2K38 bug. (Hit the Read More link below for some details on Perl's new release strategy.) "After two years of development, the new major version of Perl is now available. Notable new features are: better Unicode support, proper support for time after the Y2038 barrier, new APIs to allow developers to extend Perl with 'pluggable' keywords and syntax, warnings for deprecated features and more. From the linked post: You can get it from the CPAN right now or wait for a platform-specific release (such as Strawberry Perl for Windows)." Finally, from reader snydeq: "InfoWorld's Martin Heller provides an in-depth review of Visual Studio 2010 and finds Microsoft taking several large steps away from its legacy IDE code. 'Visual Studio 2010 is a major upgrade in functionality and capability from its predecessor. Developers, architects, and testers will all find areas where the new version makes their jobs easier. Despite the higher pricing for this version, most serious Microsoft-oriented shops will upgrade to Visual Studio 2010 and never look back,' Heller writes. Chief among the improvements are Microsoft's revamping the core editing and designer views to use WPF, its overhaul of IntelliSense and support for test-driven development, and its intelligent support for multiple versions of the .Net Framework."
Re: Perl. This release cycle marks a change to a time-based release process. Beginning with version 5.11.0, we make a new development release of Perl available on the 20th of each month. Each spring, we will release a new stable version of Perl. One month later, we will make a minor update to deal with any issues discovered after the initial ".0" release. Future releases in the stable series will follow quarterly. In contrast to releases of Perl, maintenance releases will contain fixes for issues discovered after the .0 release, but will not include new features or behavior.
Re: Perl. This release cycle marks a change to a time-based release process. Beginning with version 5.11.0, we make a new development release of Perl available on the 20th of each month. Each spring, we will release a new stable version of Perl. One month later, we will make a minor update to deal with any issues discovered after the initial ".0" release. Future releases in the stable series will follow quarterly. In contrast to releases of Perl, maintenance releases will contain fixes for issues discovered after the .0 release, but will not include new features or behavior.
most serious Microsoft-oriented shops will upgrade to Visual Studio 2010 and never look back
Of course, implying that you're not a serious Microsoft-oriented shop if you don't upgrade. This is the exact opposite of the case. As Microsoft regularly changes stuff in VS that no-one wants, most people don't upgrade until necessity forces it on them. It's entirely network effects. If you're using precompiled third party libraries and they upgrade, chances are you'll be forced to upgrade. If Microsoft made it easier to use the new IDE without upgrading the compilers, the standard lib, the header install, etc, I imagine more people would accept the feature improvements (and the bug fixes!) to the IDE without trepidation.
How we know is more important than what we know.
proper support for time after the Y2038 barrier
Good to know that my time machine written in PERL will no longer malfunction due to improperly handled timestamps! Now to test this baby out. This knob here, this button here, and... %^$%^$%^$%^$%^ NO CARRIER
So almost every developer either: a) Uses Erlang and a Mac b) Uses Perl or c) Uses VS2010? Is it just me, it would there still be a fair chunk of developers not included?
We've started churning out pointless stories all day and then cramming four actual news posts into a single thread?
I wonder what other developers think of IDEs.
I really like the intelliSense etc as an idea. But in practice the whole IDE thing gets in my way.
IntelliSense does let me write code faster, but I find that I don't spend most of the day actually typing in code as fast as I can. I spend a large amount of time using git (revision control tool) on the command line, or debugging and profiling the app, using strace, nm and other command line tools, and so on. The IDE really gets in my way most of the time.
If I switch between branches or revisions (which I do often - git is so wonderful) then IDEs tend to go haywire as hundreds of files suddenly change, and then change again and again..
So, I stick to vim. I know there's ctags etc but I don't even bother with that. After a while I tend to just remember most of the API anyway.
Perl had a 5 in front .. in fact since 1994 I think.
to code or not to code, that is the question.
That's generous.
I've been working with Erlang for about 9 months now. It's an interesting language, but prone to some of the most bizarre runtime problems because it doesn't do type checking (for example if you typo a "+" instead of "++" when concatenating strings it'll defer the error to runtime, when it reports an "arith error".)
One thing that really impresses me about Erlang is how tight the code is. We've been working on a PBX application (with Freeswitch and PostgreSQL) and it's not even 30,000 lines of code in Erlang, including database I/Os and client/server GUI access. C++ would have weighed in at around 100,000 lines for the same functionality.
I do not fail; I succeed at finding out what does not work.
Talking about Perl, this is the official Perl 6 site:
http://perl6.org/
Srsly :P
Would it hurt to just write 2038? No space is saved writing it the other way.
Visual Studio 2010 is a very nice step in the right direction, it's much better than previous versions. That said, Dreamweaver CS5 is the first step in a true IDE from Adobe and rocks hard for the huge amount of Wordpress development I do.
"Remember when I said I would never lie? Well, that was the first time."
It might be a minor detail, but you should know that they finally fixed CTRL+TAB in VS 2010 so that it behaves like every other tabbed interface in the world.
...
...
...nah, just kidding, it still sucks balls.
Strawberry Perl has been doing betas all the way through the 5.12.0 RC process, so the production release should be out in a week or so.
What the summary doesn't mention is that there's some stuff in 5.12 that allows Strawberry to add:
GCC-based 64-bit support for Windows servers
Strawberry Portable (flash drive) stuff finally works in a first-class manner (with separate core/vendor/site installation targets).
First up, reader martinjlogan sends along a tutorial for setting up a workable Erlang/OTP development environment on a Mac. Next, reader acid06 notes news of Perl 5.12, including what may be the first delivered fix for the Y2K38 bug. (Hit the Read More link below for some details on Perl's new release strategy.)
Here's a helpful link for those wondering what OTP means. I'd never heard it used in this context and I image most other developers haven't either.
I wish more languages and distributions had out of the box support for OPIE or S/KEY.
In the spirit of merging multiple discussion topics into the same thread, who wants to discuss x86 assembler programming with me? Just hit reply and we'll get under way. Feel free to change the topic at any time.
While you're waiting for Strawberry Perl to put out a release, why not try a package from a company that has their stuff together? Activestate's ActivePerl 5.12.0 is free-for-non-commercial-use and already out. 32- and 64-bit builds for Windows, Mac, and select Linux distros are available.
Quoting from the Express page:
Unique to Visual Studio® 2010 Express is a new streamlined user experience that focuses on the most common commands by hiding some of the more advanced menus and toolbars.
Anyone who has actually downloaded and used it cares to share if this is Windows 2000 style personalized menu all over again?
Pretend all you want, you can't fool the fool fool!
Or, 7, 7.1, 8, 9, 10
I am the one and only, I am the fool fool!
Awesome. From now on, let's just post 1 story on Slashdot per day with all of the good stuff in it, so that we may discuss everything in it in one big unrelated clusterfsck of comments.
I've been waiting nearly a decade for Perl 6. Oh well.
Qxe4
Visual Studio 2010 still hasn't fixed one of the major bugs that has been around since .NET 1.0.
When you run a forms based program in debug mode on an x64 system, and the form's load event throws an exception, the program will happily continue running without reporting the exception. Execution skips directly to the end of the load sub without running any lines of code after the exception, yet the program continues to run as if nothing went wrong. Everything works as expected if you are working on an x86 box though. You will rip your hair out trying to figure out what's going on if you don't know about this.
Details can be found here http://social.msdn.microsoft.com/Forums/en-SG/vsdebug/thread/69a0b831-7782-4bd9-b910-25c85f18bceb
It's considered trolling because that's purely what it is.
Perhaps you'd like to enlighten us with some examples of "byzantine syntax", since Greek and Latin aren't valid Perl. Perhaps you meant "British" syntax, since the language is based more off of English than other programming languages. Yes, I'm aware this places it in the same group as COBOL, but hear me out.
Perl's syntax is based off natural language. You should be able to tell the computer what to do in the same way you'd tell another person, with some obvious extra clarity needed. In this regard, it is the opposite of INTERCAL. In Perl, when you want to run a function 'foo' if and only if 'bar' is true, the statement is very close to what I've just said.
foo if bar;
Sure, it's not like C, but why should we limit our thinking? Alternatively, just as in English you can say "If 'bar' is true, run 'foo'":
if (bar) { foo }
Perl is a language for people who use language. Even the more ugly syntax makes perfect sense with a bit of thought:
s/foo/bar/g;
That's a full statement, saying "substitute foo with bar globally". It applies to whatever you happen to be working on at the moment, just like how there are many statements in English that carry an implied 'you'.
The syntax of the Perl language is only ugly if you try to forget that it is a language. Perhaps other languages should try to emulate Perl's features, and actually gain some readability. Sometimes, it just makes more sense to express things differently. Would COBOL be so bad if it allowed BASIC's syntax as well (and allowing non-computer people to write in it carried the death penalty)?
You do not have a moral or legal right to do absolutely anything you want.
Describes it rather well for me.
If Perl's syntax were actually elaborate, that might hold. Maybe something like "every third line MUST be blank, unless it's a full moon, or a Thursday, in which case being blank is optional, but the line must include an uppercase letter."
Offering more than one way to write a given line, and attempting to follow the rules of a natural language, is not "elaborate scheming and intrigue". Perhaps you have a counter-example? or is this just more FUD from the I-was-told-Perl-is-ugly-so-I'll-repeat-it school of thought?
You do not have a moral or legal right to do absolutely anything you want.
%^$%^$%^$%^$%^ NO CARRIER
Just to clarify, does that actually do something in Perl?
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
Is this finally going to be the version where Intellisense doesn't make the editor randomly pause and unresponsive?
I usually end up disabling Intellisense in C++ by removing the offending DLL from the VS installation when I'm working with heavily <template>ed code.
I've been using VC++ Express 2008 and was excited to get an upgrade. But instead I was surprised by a few seemingly "dumb" moves:
1. The default fonts for the editor and tool windows have been changed to a font that looks very blurry on Windows XP. To change them back, you have to change them one by one for every window.
2. The drag'n Drop capability to add buttons to the tool bars is gone. You have to find the button from another dialog and then click "MoveUp/Down" several times to move it to the place you want.
3. The GUI I used the most in the Option Dialog, the directories of Exe/Include/Lib, is moved to a place that I haven't yet found.
4. The startup time is much longer than that of 2008.
5. The new GUI has a high contrast. Maybe it's just me, but after staring at it for a long time, I feel like I am starting to see ghost images.
CE6 development is no longer done through Platform Builder. It's a Visual Studio plugin. But - only for VS 2005. They've never updated it. Even if I wanted to upgrade I couldn't.
Weaselmancer
rediculous.
Things that suck: the implicit variables and default pattern space, the special variables with a sigil and another punctuation character, the fact that there are sigils and subroutines without named parameters, the irritating hassle that is hashes of hashes, the ugly shitball bolted on OO support. Nor is CPAN is a plus, with the thousands of modules that partially and/or totally duplicate one another's functionality or that fail to work owing to years of neglect or, more often, carelessness of packaging on the programmer's part.
But the worst part about perl is the ethic of TMTOWTDI. In practice means either that one finds it done a new way for every 1000 or so lines, or that someone's imposed exactly their way to do it. Your programming is not art, and you are not writing literature; you are not a code poet. Expressing yourself in code is nowhere nearly as important as writing something stable and maintainable. One - just one - good, obvious way to do it; something that's predictable and that works. Something that, when you've moved along, the next guy can look at and not have to ask aloud what fucking asshole did this.
There's better choices out there now, even among scripting languages. We don't need to keep using the monstrous bastard amalgam of sh, sed, awk and Larry Wall's pretenses of being a linguist. Learn some new skills, and let's all just let the fucking thing die already.
A few days ago, I used a copy of Visual Studio 2010 that I got from my MSDN Academic Alliance account. It looks really nice, but it ran absolutely dog slow. And this was for debugging VBScript!
I gave it another shot with Visual Studio 2010 Web Developer Express, which I heard can debug VBScript just like the full devenv can. It was a little faster (though still slower than VS2008), but it nor Visual Basic 2010 Express would debug my VBScript.
I haven't tried coding on it for real (I also do C/C++ development; can't wait to port that script over to a REAL effin' language), but if it's as slow as I remember it being, I can see lots of companies turning back really quickly.
bugs would creep in, undoubtedly
Impossible, if you follow Micosoft's guidelines, such as those published in the Microsoft Programming Series book by Steve Maguire: "Writing Solid Code: Microsoft Techniques for Developing Bug-free C" ISBN 978-1556155512
Microsoft uses these very techniques themselves, in every single one of their bug-free programs. Uh, on second thoughts...
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
I'm offended by your statement that it's impossible to write valid Perl in Latin, and offer this counterexample. Arguably, a Latinised syntax fits it even better than an English-like one; in both Perl and Latin, there's often enough context to put things in a (relatively) arbitrary order. Of course, I'm someone whose signature is an INTERCAL statement, so you may want to take what I've said with that in mind.
(1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
Alright, I'll bite. Perl is so byzantine that its creators can barely write a compiler for the next version of it. Perl is so byzantine that its syntax can be meaningfully compared with the sloppy mess called the English language. Perl is so byzantine that most of the people using Perl left it for Python a decade ago. Perl is so byzantine that its syntax is almost half as bad as Haskell's. ;-)
It seems like Perl is a byproduct of another era, when being "quicker to write than C" was a big feature. Since anyone can just use Python and read an easy "spam and eggs" tutorial, and do most of the same things with cleaner syntax, what is the big draw? The Lisps had all the advanced features long ago, and the other friendlier "scripting languages" are here to stay. What's the future of Perl? Can it really survive as a popular hacker language like it was 10-15 years ago?
Systemd: the PulseAudio of init systems
Different people think differently. Clean syntax and propriety might be important to you. For others, it might feel less expressive, like trying to speak in a foreign language.
Just wondering... Is it so difficult to put the whole thing into a package that will install with a double click?
So we have a tutorial to download the sources and install it. Which uses a package manager which is "quickly becoming the package manager of choice for OSX" except that I have never heard of it. Which comes with another link for download instructions. Look, we don't want links to download instructions, we want a link that downloads the whole package which installs with a double click.
Someone has to learn a bit about user interfaces.
The sigils can be argued to be a boon that makes code clearer (this is a preference (see (e.g.) lisp)).
For OO, check Perl 5's Moose (more or less Perl 6 OO system backported). It arguably beats the pants of Python and Ruby.
See MooseX::Declare for a nice syntax. Including parameter declarations for modules.
CPAN can be a pain, but it is still the gold standard for what it does.
There is more than one way.. Perl is rich; that is a design choice. The main disadvantage is learning time. The main advantages are expressability and that it is fun.
And so on. It isn't worth the time; too many trolls. Even if you got the facts more or less correct.
s/for modules./for methods./;
Sorry about that.
Wanna bet?
> since Greek and Latin aren't valid Perl
Well, there is Lingua::Romana::Perligata. Predictably, we have Damian to blame for that.
Cut that out, or I will ship you to Norilsk in a box.
VS2010 is really a whole revamp of the traditional visual studio. I'm been using it now for a few months and I must say, once you get used to the new layout and views... ...it's far better than 2005 or 2008. There are (of course, with microsoft) a few crashing bugs dealing with intellisense but still. Very easy to use and makes other IDE's look legacy now. If only XCode had intellisense the way Visual Studio does. (I know about hitting escape within XCode, still, it's not the same).
Perl's syntax is based off natural language. You should be able to tell the computer what to do in the same way you'd tell another person, with some obvious extra clarity needed.
An unparsable language is not exactly what I would think of first, when "extra clarity" is required.
It's considered trolling because that's purely what it is.
Perhaps you'd like to enlighten us with some examples of "byzantine syntax", since Greek and Latin aren't valid Perl.
Lingua::Romana::Perligata. You were saying?
Most of GUI utilities for programming python are able to scan the current namespace and do autocompletion based on that information. This is retrieved from python runtime.
IMHO this is much better approach than propaganda intellisense crap.
... and its at least soft real-time support, we actually got pretty close here.
Tweet, tweet.
I stand corrected. I should have checked CPAN. Of course there's more than one language to do it in.
You do not have a moral or legal right to do absolutely anything you want.
Try reading your own link. Perl, a dynamic language, cannot be parsed statically. In other news, green is not red, and water is wet.
You do not have a moral or legal right to do absolutely anything you want.
For several decades I bought everything Microsoft. Each upgrade I could hardly wait for the new stuff. After a while it became clear there was no end, and as the window of opportunity for each version got shorter and shorter, it became clear that a single developer or team could not keep up Microsoft's relentless updates. It didn't even seem like several teams alternating release cycles could keep up. If every release takes a six month learning curve, and something changes every five months of so, there is no end, or even a plateau on which to breath. To make things worse, a collection of technical materials and training are required to get critical mass on Microsoft development at any particular moment. At a certain point I released I could not read the books fast enough to keep up, and everywhere I looked in my lab were piles of Microsoft press books at 60-80 dollars apiece, sitting around like paperweights. The books have become hopelessly version oriented, and become obsolete in just a few months. anyway, the point I am trying to make is that to be a "serious Microsoft shop", takes a serious amount of money and staff, and under the circumstances, I understand why companies do not want to afford in-house programming staff. Microsoft has their hand in the deep pockets of american business, and it is a major drag, lie taxes, on the economy and the lifeblood of businesses. It is one thing, if a company sells tools that are powerful and efficient, but in my opinion, Microsoft doesn't care about the welfare of developers, and only seem to care about the next credit card. I saw the earth shift on it's axis when I realized Microsoft saw developers as another class of paying customers, and not the strategic partners developers once were. Bah humbug, not another penny for Microsoft, that's my motto.
In truth, there are several implementations of Perl 6.
how to invest, a novice's guide
you name of one of many partial implementations of Perl 6, which isn't done yet. To repeat, no sane person nor competent business is going to use Perl 6 or any other half-baked science project for real business.