Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: Choosing a Web Language That's Long-Lived, and Not Too Buzzy?

timothy posted about 3 months ago | from the perl-6-will-blow-them-all-away dept.

Perl 536

adelayde (185757) writes "In my day job, I work on a web based service with a lot of legacy code written in that older (and some may say venerable) web-scripting language, Perl. Although we use Modern Perl extensions such as Moose, the language just seems to be ossifying and we're wanting to move to a more up-to-date and used language for web applications, or even an entire framework, to do new development. We're still planning to support the legacy code for a number of years to come; that's unavoidable. This is a fairly big project and it's mission critical to the business. The thing we're afraid of is jumping onto something that is too new and too buzzy as we'd like to make a technology decision that would be good at least for the next five years, if not more, and today's rising star could quite easily be in tomorrow's dustbin. What language and/or framework would you recommend we adopt?"

Sorry! There are no comments related to the filter you selected.

Perl (5, Interesting)

XanC (644172) | about 3 months ago | (#47361753)

Perl 5 pretty much satisfies everything you're looking for. What's the problem with Perl again?

Re:Perl (5, Funny)

Anonymous Coward | about 3 months ago | (#47361833)

/&%#%^&*)^ADVkjR$%^$E)!HJLGAZ^&R%\jkghlk/^

Random garbage or valid perl?

Re:Perl (5, Funny)

trudslev (693655) | about 3 months ago | (#47361853)

Valid garbage or random perl?

Re:Perl (5, Insightful)

just_another_sean (919159) | about 3 months ago | (#47361877)

Nobody is forced to program that way in Perl. It can be fun and may or may not look cool on a t-shirt but no one recommends that as a way of doing it. Just because there's more than one way to do it doesn't mean you should choose the worst way.

And to the submitter, I agree with the OP.

Re:Perl (5, Insightful)

MouseTheLuckyDog (2752443) | about 3 months ago | (#47361933)

Nobody is forced to program that way in Perl.

Mobody is forced to write Perl that way, but many people are forced to read that kind of Perl.

Re:Perl (1)

Newander (255463) | about 3 months ago | (#47361889)

So your beef is with Regular Expressions?

Re:Perl (2)

NotInHere (3654617) | about 3 months ago | (#47361905)

Using cable1: [ioccc.org]
$./cable1 "/&%#%^&*)^ADVkjR$%^$E)\!HJLGAZ^&R%\jkghlk/^" "random garbage" "valid perl"
valid perl

Re:Perl (1)

Camel Pilot (78781) | about 3 months ago | (#47361947)

Are you referring to reg exp? If so... it is you loss for not understanding reg exp.

Re:Perl (2)

azav (469988) | about 3 months ago | (#47362063)

And that regular expressions are as easy to understand and predict as Rob Ford is sober.

Re:Perl (4, Funny)

Mordok-DestroyerOfWo (1000167) | about 3 months ago | (#47362073)

/&%#%^&*)^ADVkjR$%^$E)!HJLGAZ^&R%\jkghlk/^

Random garbage or valid perl?

Why can't it be both?

Perl says your garbage is just that (3, Informative)

Anonymous Coward | about 3 months ago | (#47362179)

Well, it says it in it's own polite way:

$ perl -e '/&%#%^&*)^ADVkjR$%^$E)!HJLGAZ^&R%\jkghlk/^ && print "Valid? No way!"'
syntax error at -e line 1, near "^ &&"
Execution of -e aborted due to compilation errors.

Re:Perl (2, Funny)

Anonymous Coward | about 3 months ago | (#47361861)

It's too old. As far I can tell, there are exactly zero specific requirements mentioned besides it being something new but that'll stick around, and that the project is "fairly big."
 
My solution would be to talk to the smart friend of yours with the largest hands. The slap upside the head should solve the problem.

Better yet... (3, Funny)

OpenSourced (323149) | about 3 months ago | (#47361779)

Which editor should we use?

Re:Better yet... (5, Funny)

Anonymous Coward | about 3 months ago | (#47361789)

Anyone but Timothy.

Re:Better yet... (5, Funny)

Timothy Hartman (2905293) | about 3 months ago | (#47361821)

+9001 Funny.

Re:Better yet... (0)

Anonymous Coward | about 3 months ago | (#47361971)

Should we use tabs or spaces?

Perl still works, and PHP is fine (5, Informative)

ShaunC (203807) | about 3 months ago | (#47361791)

Perl may be legacy to an extent, but it's a Swiss army knife that will get any job done. I don't see it going away anytime soon.

I know it's in vogue to hate on PHP, but PHP is relatively modern, robust, and fully capable of handling enterprise tasks. It's widely adopted and there's support everywhere. Probably half of the websites and services you use every day are built on PHP, it's certainly not the worst language you could choose.

Re:Perl still works, and PHP is fine (-1, Redundant)

steak (145650) | about 3 months ago | (#47361797)

I came to post more or less the same thing.

Re:Perl still works, and PHP is fine (2, Informative)

xmousex (661995) | about 3 months ago | (#47361927)

If you are concerned about getting in employees who know the language from school or have experience at several prior jobs, and come in at affordable rates, or have a concern about available contractors, PHP is going to give you a larger available talent pool that you can swap people in and out faster then continuing with perl or going down just about any other path where the knowledge pool will be fairly limited. There are a lot of platforms in PHP that can aid with this, providing frameworks that everyone can follow regardless of how stable or unstable your development team may be.

Re:Perl still works, and PHP is fine (5, Insightful)

Anonymous Coward | about 3 months ago | (#47362045)

Sure, on paper it looks like you'll have a large number of viable candidates, but when you start interviewing you learn that the PHP "talent pool" is mostly just a pool.

It's just as quick to hire a real developer and train them in PHP.

Re:Perl still works, and PHP is fine (2, Insightful)

tigersha (151319) | about 3 months ago | (#47361937)

> PHP is relatively modern, robust

No it isn't

Re:Perl still works, and PHP is fine (5, Funny)

Mordok-DestroyerOfWo (1000167) | about 3 months ago | (#47362087)

> PHP is relatively modern, robust

No it isn't

Skillfully refuted!

Re:Perl still works, and PHP is fine (2)

alex67500 (1609333) | about 3 months ago | (#47362109)

PHP is relatively modern, robust

No it isn't

Thanks for your valuable contribution.

Judging by the fact that most of Facebook is based on PHP, it sounds to me like it's pretty robust... It's also object oriented. The only drawback that I would find as a code-geek is weak typing, but that's a personal opinion, not a lacking feature.

Re:Perl still works, and PHP is fine (0)

Anonymous Coward | about 3 months ago | (#47362371)

Wait, what? That's really the only drawback you could find with PHP?

Oh, I get it. You're one of those "code-geeks" who only knows PHP and JavaScript. When you're comparing shit against shit, they both look pretty good! The fact remains that they're both still steaming piles of shit, however.

Re:Perl still works, and PHP is fine (3, Informative)

Vellmont (569020) | about 3 months ago | (#47361965)

Anyone cosidering PHP should read this the now infamouns "PHP is a fractal of bad design".

http://eev.ee/blog/2012/04/09/... [eev.ee]

Re:Perl still works, and PHP is fine (0)

Anonymous Coward | about 3 months ago | (#47362037)

I've read it, and I still use PHP. Why? Because it works, it's supported everywhere, and there's a ton of stuff available for it. My last project was customizing a Magento-based Web store.

PHP is the obvious answer to this question, but they won't consider it, because "oh God, ANYTHING but PHP!!"

Re:Perl still works, and PHP is fine (2)

TheRaven64 (641858) | about 3 months ago | (#47362079)

That's the same logic people used for choosing C, and just past the 25th anniversary of the first remote exploit of a buffer overflow vulnerability, it's still top of the list of causes of CVEs.

Re:Perl still works, and PHP is fine (1)

lucm (889690) | about 3 months ago | (#47362169)

Anyone cosidering PHP should read this the now infamouns "PHP is a fractal of bad design".

http://eev.ee/blog/2012/04/09/... [eev.ee]

Most of it applies to old, obsolete versions of PHP. That's like complaining about the 640K barrier in Microsoft's operating systems.

Re:Perl still works, and PHP is fine (1)

Nemyst (1383049) | about 3 months ago | (#47362283)

It's an interesting list of issues, but all it does is whine. If you actually look around for web languages that are widely supported and easy enough to get running, even on cheap shared hosting, you'll find that your choices are extremely limited. PHP, sometimes Ruby on Rails, that's about it. Before you dismiss shared hosting off hand, remember that not everyone has a lot of money to spend on a website, and that a language's widespread adoption DOES factor in the decision to use it.

Fractal rant makes about six good points (5, Informative)

tepples (727027) | about 3 months ago | (#47362361)

Anyone cosidering PHP should read this the now infamouns "PHP is a fractal of bad design".

Which must be balanced with the "hardly" rebuttal [devshed.com] . For example, PHP lets a program solve the exception/warning dichotomy cleanly in about six lines of code; see the manual's page about the ErrorException class. This leaves about a half dozen legitimate complaints:

  • No way to turn off the language's loosely-typed comparisons.
  • Parse errors and undefined function errors are fatal rather than throwing an exception that the caller can catch.
  • Inconsistent naming conventions in the standard library.
  • Associativity for the ternary ?: operator is the less useful side.
  • PHP allows the server operator to change program semantics in ways that are annoying to work around, such as not allowing a shared hosting subscriber to turn off "magic quotes" or not following HTTP redirects in libcurl.
  • PHP versions change the semantics of existing programs in ways that encourage shared hosting providers to continue to offer only outdated versions of PHP, making it impossible for web application developers to take advantage of new features.

Re:Perl still works, and PHP is fine (1)

RabidReindeer (2625839) | about 3 months ago | (#47361983)

PHP was expressly designed to display web pages. Originally the acronym meant something like "Personal Home Pages".

Yes, it has warts, security issues and the original database services were anything but plug-compatible, but it's a great language for quick-and-dirty.

If you want something architecturally cleaner, if not necessarily more secure, there's Python.

Perl has certainly done yeoman service on the web. Its main faults are that it is infamously "write-only" and that - as in the case of sed commands - if you sneeze while typing, you'll have created a valid program. Probably one that does something horrible.

Re:Perl still works, and PHP is fine (1)

lucm (889690) | about 3 months ago | (#47362253)

PHP was expressly designed to display web pages. Originally the acronym meant something like "Personal Home Pages".

Yes, it has warts, security issues and the original database services were anything but plug-compatible, but it's a great language for quick-and-dirty.

If you want something architecturally cleaner, if not necessarily more secure, there's Python.

Could you care to explain how a language is "architecturally cleaner" for web applications when it does not have native web-related features? Unless you consider that piling up frameworks is a better architecture because it brings more moving parts in the picture. Hopefully you are not an architect.

Re:Perl still works, and PHP is fine (0)

Anonymous Coward | about 3 months ago | (#47362185)

Of course some geeks hate it, they'd rather sell their boss/client on an overly complicated solution only they can support (ie job security).

Node.js (2, Interesting)

Anonymous Coward | about 3 months ago | (#47361801)

JavaScript isn't going anywhere, and is nearly required for web development in browsers... so having it on the server side just makes things that much easier. It's not particularly hard to learn... you hire people with JavaScript experience, and they can get spun up on Node.js in a week or so.

Re:Node.js (1)

TechyImmigrant (175943) | about 3 months ago | (#47361827)

>JavaScript isn't going anywhere, and is nearly required for web development in browsers

I manage fine without it.

Why is it I need Javascript?

Re:Node.js (1)

pooh666 (624584) | about 3 months ago | (#47361859)

I bet you use too.

Re:Node.js (0)

Anonymous Coward | about 3 months ago | (#47361891)

I don't know who you are, or what you need. When I interview people for web development, JavaScript is a must. YMMV.

Re:Node.js (1)

amicusNYCL (1538833) | about 3 months ago | (#47361897)

Why is it I need Javascript?

Because you want or need to use an application that requires it. I assume you're talking generally and not asking anyone to comment on your specific situation without giving any other details about your use patterns or needs.

Re:Node.js (1)

TechyImmigrant (175943) | about 3 months ago | (#47362077)

Why is it I need Javascript?

Because you want or need to use an application that requires it. I assume you're talking generally and not asking anyone to comment on your specific situation without giving any other details about your use patterns or needs.

Let's be more specific then. What is it that Javascript does that I cannot do with an alternative language just as or more effectively? I don't dispute that you can use it and some can use it well, but I do dispute that anyone 'needs' it.

Re:Node.js (2, Informative)

jbolden (176878) | about 3 months ago | (#47362183)

Javascript executes client side. It is the interpreted language that rendering engines are being built around. You can't have scriptable interactions with low latency without something like it and it is at this point usually the best choice.

Re:Node.js (1)

amicusNYCL (1538833) | about 3 months ago | (#47362377)

What is it that Javascript does that I cannot do with an alternative language just as or more effectively?

If you're asking in the context of a web browser, then Javascript is the only realistic option for a dynamic UI. If you're asking about Node.js on the server, then Javascript support on the server isn't something you can disable in the first place if you're running Node. If you're not running Node, then obviously you don't need Javascript on the server.

Re:Node.js (0)

Anonymous Coward | about 3 months ago | (#47362379)

You can make asynchronous calls back to the server and make changes to the DOM based on the return without doing a page refresh.

Re:Node.js (0)

Anonymous Coward | about 3 months ago | (#47362099)

Because you want a website to actually do something and don't want to round trip server followed by a page refresh every time the user performs an action.

Also Flash websites are annoying garbage and silverlight is dead.

Re:Node.js (1)

SQLGuru (980662) | about 3 months ago | (#47361929)

I'd agree for the most part. There are a lot of pretty cool front-end things going on and with Node makes your front-end and back-end language cohesive. Sure, there are plenty of other options, but there is something to be said for having guys who can transition from front to back or back to front.

Re:Node.js (0)

Anonymous Coward | about 3 months ago | (#47361953)

GWT. Write in a compiled type safe language and let the computer generate all the JavaScript for you.

Re:Node.js (1)

TechyImmigrant (175943) | about 3 months ago | (#47362113)

>GWT. Write in a compiled type safe language and let the computer generate all the JavaScript for you.

If my job required me to do a lot of web stuff, this would by the way I would choose.
As it is, there's not much call for SystemVerilog coding in web apps.

Re:Node.js (1)

WilCompute (1155437) | about 3 months ago | (#47362117)

For the next 5 Years? Typescript. Typescript runs on node.js, IS Javascript, the next ECMA version of it at least, and is supported by Microsoft, so it will be supported for at least 5 Years. Since it is the next version of Javascript, It compiles to all the current browsers, and can be used with current Javascript libraries.

If you like Visual Studio, 2013 has first class support for it.

Combining this with, say, Web Components such as Polymer from Google, or Bricks from Mozilla, for the front end of your system, will allow you to future proof your application in the one language the web by definition will support.

(I cannot foresee the future, but I BELIEVE that Javascript will stay as part of the web standard, even if the standards committee were ever to decide to add another language, such as Google is hoping for with Dart.)

(I would like to say Dart, but for a large application, it will be harder to find coders that are familiar with it, versus Typescript, which at worst can be written by decent Javascript Developers.)

obvious (0)

Anonymous Coward | about 3 months ago | (#47361805)

Javascript. Code for input validation, data aggregation, automated testing, utility libraries (lodash etc.), concurrency and async handling (callbacks, promises, FRP...), domain specific code (on the UI: RIA, on the server side: SEO and mobile optimized initial payload delivery) etc. can all be shared. Heck, with PhantomJS or similar, headless testing and precomputed SEO aware payloads are straightforward. Use node.js or if Java cannot be avoided, Nashorn.

Re: obvious (0)

Anonymous Coward | about 3 months ago | (#47361871)

A decent web dev toolchain uses javascript and node.js already. You must use JS in the client, or at least something with a source map. I don't get why Python is even considered as it is a much slower language, and has most of the weaknesses of JS and its distinguishing strengths are few and aesthetic. Nothing beats not having to switch among languages with arbitrary differences, and sharing resources (code and coding). Or choose Python if you are a primadonna and feel like it and can get away with it and eat the dust of your competitors.

Re:obvious (2)

TechyImmigrant (175943) | about 3 months ago | (#47362129)

>Javascript. Code for input validation

Umm... Javascript in a web page can do nothing for input validation. Anyone can send anything they want to a server.

Re:obvious (0)

Anonymous Coward | about 3 months ago | (#47362175)

That's the point. The same code used to validate on server side can be used on client side. Much easier than maintaining two separate pieces of code that do the same thing...

Why not... (2)

realilskater (76030) | about 3 months ago | (#47361809)

PHP or Java?

PHP has a number of CMS frameworks built in it.
Java has the JavaEE stack.

Re:Why not... (0)

Anonymous Coward | about 3 months ago | (#47362205)

That's pretty much it. You want "not new and buzzy" your choices are Perl, PHP, and Java/JSP.

Avoid Frameworks. (2)

TechyImmigrant (175943) | about 3 months ago | (#47361811)

If you're using a high level language with WSGI for efficiency, then you can choose the one that meets your performance/complexity goals.

Friendly, maintainable, not high performance: Python
Higher performing, C, C++
Supports elegant solutions if your brains are wired differently: Haskell

But unless your code is a mess, there's nothing so valuable as a large codebase of working code with institutional knowledge built around it. That would be PERL.

Re:Avoid Frameworks. (0)

Anonymous Coward | about 3 months ago | (#47362207)

Avoiding frameworks is the worse advice possible.

I've had to go in many times and clean up the messes developers have made because they rolled their own framework rather than using an existing API.

Of course you're also the one who says not to use JavaScript, do I should expect as much.

Re:Avoid Frameworks. (2)

TechyImmigrant (175943) | about 3 months ago | (#47362315)

I've yet to meet a Framework that makes things as clean and usable as they claim.

And worse, once a web site is in Django or Drupal or somesuch, no novice can edit anything. Template languages are great if you understand the inheritance model, but non techies do not understand those things. They give up, load dreamweaver and mess all over your lovely framework, so they can get content up.

If you have a staff online to support a web site, then fine. They can mediate transactions. But Frameworks are like an arse. They only get bigger with time.

There are better ways borne of thinking hard about fitting the right solution to the problem.

Re:Avoid Frameworks. (0)

Anonymous Coward | about 3 months ago | (#47362209)

A lot of people do pretty well using Microsoft .net for web development.

Just sayin.

Re:Avoid Frameworks. (1)

Anonymous Coward | about 3 months ago | (#47362285)

A lot of people do pretty well using Microsoft .net for web development.

A lot of people do pretty well sucking cock for a living, but I think Perl isn't quite that bad.

Re:Avoid Frameworks. (1)

TechyImmigrant (175943) | about 3 months ago | (#47362337)

Whatever floats your boat.

I see people around here who not only use, but appear to like Javascript. Those people occupy a different mental space to the one I do.

Re:Avoid Frameworks. (1)

Nemyst (1383049) | about 3 months ago | (#47362235)

I take it you've missed the "web" part of the question. Writing web stuff in C/C++ is already all sorts of horrible, but Haskell? There's a special place in hell for people like that.

That is what Ruby is for (1)

cryingpoet (472652) | about 3 months ago | (#47361829)

Ruby is a great Perl replacement. It generates really nice looking content and is very readable. Do more with it than Perl with spending hours trying to understand some else's "snoopy swearing" code in Perl. Please be sure to look into Rails and Rake as well.

Re:That is what Ruby is for (1)

MouseTheLuckyDog (2752443) | about 3 months ago | (#47362147)

Of the three "scripting languages" I find Ruby to be the nicest with the cleanest syntax, but IO think it's MOP goes way too far and create a whole set of problems.

Re:That is what Ruby is for (1)

khellendros1984 (792761) | about 3 months ago | (#47362271)

Which three scripting languages are you choosing as "the" three?

C++ and CppCMS (1, Interesting)

Anonymous Coward | about 3 months ago | (#47361845)

Use C++ and CppCMS: http://cppcms.com/ [cppcms.com]

You get the benefits of a real programming language, not just a toy like Ruby, Perl, JS or Go. The code is checked by the compiler, you can compile it to run just about everywhere, and the compiled binaries are FAST. You don't need 10x or 20x the servers just because you're using an interpreted language that's really fucking slow.

And if you aren't a dumbass, you'll use the Modern C++ way [microsoft.com] . You will reduce your risk of security holes to a minimum, while getting a very efficient language to program with. Unlike Go, you'll get real OO if you need it, and real support for templates.

C++ is for those serious programmers who want to get real work done, and who don't have time to waste with overhyped crap.

Re:C++ and CppCMS (0)

Anonymous Coward | about 3 months ago | (#47362033)

Wow... sounds like you're very bitter about the success of other languages.

Re:C++ and CppCMS (1)

Dadoo (899435) | about 3 months ago | (#47362093)

You might want to rethink that: http://www.infoq.com/news/2011... [infoq.com]

Re:C++ and CppCMS (0)

Anonymous Coward | about 3 months ago | (#47362219)

Functional programming is just a subset of OO programming.

A closure is nothing more than an instance of a class with a single method and its member variables representing or referencing the environment being closed over. They're called "function objects" by C++ developers, and have been used for ages. C++ lambdas are built upon them. Even Java developers have used similar classes as event handlers.

And C++ supports recursion, immutability, and the other hyped features of functional programming. Pattern matching is a limited form of polymorphism, which C++ has also supported for a long time.

Way to go, Carnegie Mellon faculty! You're catching up to mid-1990s C++ and late-1990s Java. That's fantastic!

Ossifying? (1)

Anonymous Coward | about 3 months ago | (#47361857)

Do you mean "stable"?

What the fuck is wrong with that?

Your job isn't to use hip new languages, it's to keep the service you run WORKING. For the people who PAY YOU. It's a TOOL for their business.

Ask the people paying your salary if they want you recoding things that work into your language-flavor-of-the-week.

Re:Ossifying? (1)

NoNonAlphaCharsHere (2201864) | about 3 months ago | (#47362053)

Clearly you've never maintained someone else's code. With code maintenance, you're not just climbing into an existing codebase, you're climbing into the author's head. The problem with Perl is it supports rampant schizophrenia and cutseypoo hacks. Trying to refactor someone else's Perl can be like an acid trip down the rabbit hole. I use Perl on occasion, usually for one-offs, but if it take more than about 10 lines, I look for a more appropriate tool, even AWK. And I've sworn a mighty oath to never again work on anyone else's Perl code. Life is too short for that kind of aggravation.

All the cool kids use python (0)

Anonymous Coward | about 3 months ago | (#47361867)

So just jump on that band wagon, you already have a hate on for perl you'll fit in great with them.

PHP is a very solid choice (1)

brokenin2 (103006) | about 3 months ago | (#47361869)

PHP of old used to make it very easy to write applications with large security holes, but newer versions do a much better job of preventing developer's tendancies to shoot themselves in the foot.

I think it will be a very viable choice for web applications for the next 10 years or more.

There are a number of frameworks written in PHP that are pretty good as well. For my current project though, I've chosen to write a framework that is geared toward exactly what that project needed. I did choose to use an HTML framework to aid in the UI creation and standardization. For my project I chose "Foundation", but there are a lot of other good ones as well.. If your application has a requirement of being mobile device friendly (is there anything that doesn't?) then I would highly recommend a 12 column HTML framework.. If you don't know why a 12 column framework is the way to go, Google it, there are plenty of write ups.

Re:PHP is a very solid choice (1)

Dracos (107777) | about 3 months ago | (#47362013)

PHP of old used to make it very easy to write applications with large security holes, but newer versions do a much better job of preventing developer's tendancies to shoot themselves in the foot.

If that were true, then fetid garbage like WordPress wouldn't even run on PHP 5.3+, being as its code hasn't changed at all since the days of PHP4.

Globals... globals everywhere...

Re:PHP is a very solid choice (1)

brokenin2 (103006) | about 3 months ago | (#47362165)

Globals have been disabled by default in PHP for a very long time.

"register globals" which allowed post and get parameters to be automatically registered in the global scope was defaulted off a long time ago, and in newer versions of php (5.4+) is not even an option any more. This is historically the feature that got a lot of bad programmers in trouble.

Almost every language has a way for functions to access global scope variables, and PHP is not exception, but to do so now, you have to specify exactly what you're going to access by doing it through _GLOBALS or by calling "global " inside your function.

The default scope for variables is to have no globals, and to direct you toward a more OO programming style. You can still shoot yourself in the foot, just like every other programming language, but you have to at least try a little to do it.

Stick with Perl (1)

Anonymous Coward | about 3 months ago | (#47361879)

The real headscratcher to me is the number of programmers who assume that because a language isn't adding features every couple years it is dead.

.Net / Typescript (2)

garlicbready (846542) | about 3 months ago | (#47361895)

I work in a medium sized software development company, and we work exclusively with .Net usually Visual Basic
C# is also an option in .Net land, typically with the newer frameworks the differences functionality wise are fairly minor
we started with .Net 2,0 web forms and are now on .Net 4.0, everything is backwards compatible as far as I can tell between frameworks
Another direction would be php, or something more specialised such as Ruby for example

If you want rapid development cycles then having intelisense / auto completion / linq / entity framework is definitely something to look into
these languages are server side, you also may want to consider how much of your website wants to be written in client side languages such as javascript. Personally I'm planning on learning Typescript which is a subscript of javascript, basically easier to write and more class based with intelisense

It all comes down to what kind of functionality you want to put into your web apps, and what your developers feel comfortable with

Re:.Net / Typescript (1)

Richard_at_work (517087) | about 3 months ago | (#47361985)

WebForms needs to die, not have new users - if you want to go down the route of .Net then at a minimum it needs to be ASP.Net MVC, or you can go for a third party framework like NancyFX. ASP.Net vNext is worth keeping an eye on as well.

Re:.Net / Typescript (1)

Sowelu (713889) | about 3 months ago | (#47362027)

Honest question as a heavy C# user. Why Visual Basic? What advantage does it give, either in function or practice or even aesthetics, over C#? It seems that they are functionally identical but that C# has the better syntax; clearly there must be some reason VB.NET is still around though. Enlighten me please?

Ruby/Sinatra (2)

Unequivocal (155957) | about 3 months ago | (#47361911)

As a greybeard who used to write dynamic gopher sites, I really like to write in Ruby/Sinatra now. It gives me access to lots of nice features (I can install activerecord when I need it) and I can build APIs super quickly and everything in between. And I can get down to the bottom of the network stack pretty easily when I want to. I do miss the Ruby/Rails built-in testing framework, but otherwise haven't looked back since switching from that environment.

Remove the ransom note excuse with Deparse (5, Interesting)

ksbraunsdorf (1600073) | about 3 months ago | (#47361963)

If you don't like ransom notes (which perl programs may become over time) use this trick: get perl to reformat the code with a this command:

$ perl -MO=Deparse ransom.pl >better.pl

Most of the time that removes the crazy from the script. I just got a large legacy code-base and that little trick made my life much better. If the perl code works, then you are just looking for work to do. Newer is not always better.

Your Watch Works, and You Want To Fix It (1)

LifesABeach (234436) | about 3 months ago | (#47361973)

What could possibley go wrong with that?

Perl with Mojolicious (2)

perplexing.reader (2241844) | about 3 months ago | (#47362019)

Very powerful and very flexible, without the heavy lifting of many frameworks. We use on a large ISP as RESTFull Server.

Python+Django (0)

Anonymous Coward | about 3 months ago | (#47362035)

Python+Django was quite nice, when applied to a university course project. Some details a bit confusing at times, but the overall design of the framework was nice. I don't know how well it performs in real use, but it might be worth it to take a look at it, to study how things can be done.

Javascript FTW (2)

MouseTheLuckyDog (2752443) | about 3 months ago | (#47362121)

Why because Javascript is proof that you can write a language that is worse then Perl.

Consider (0)

Anonymous Coward | about 3 months ago | (#47362123)

Go Event-driven as a first-class concept.

    Kernel API calls are all available as asynchronous now, so base your work on a system that thinks this way from the beginning. Everyone supports asynchronicity, but unless it's required then you'll have most of your libraries not supporting it. Event-driven scales better, and ends the threads complexity & delay found in most IO-bound tasks (which is most of the web).

Options:
- NodeJS: Modern HTML5 development is already Javascript-heavy. Package management is straightforward here: in your source control, yet dependency logic done in tools.

            Disadvantage: Memory-use edge-cases. Tricky when 1 request needs many processors.
- Google Go: Synchronous-looking code ran asynchronously. Few libraries (vs Perl), but easy connection to C libraries.

            Disadvantage: Compiled (library match issues, etc)

Why not use ... (0)

Anonymous Coward | about 3 months ago | (#47362135)

... assembly [imgur.com] ?

Python (1)

Lobo42 (723131) | about 3 months ago | (#47362141)

Python strikes the balance for me of being modern enough to not feel like it's constantly breaking, but also old and reliable enough to feel like it has widespread support in terms of libraries and is not going to fall off the map anytime soon.

Grails (0)

Anonymous Coward | about 3 months ago | (#47362145)

Grails https://grails.org/
Built on Groovy (a JVM language), so it runs on most platforms.
The syntax is much nicer than Java.
You can have a web application up and running in a couple hours.

Re:Grails (2)

Kagato (116051) | about 3 months ago | (#47362229)

I'm going to second Groovy on Rails. AKA Grails. It's very mature and is one of the languages that compiles down to Java Opt code. You have a large eco-system of production apps that run in the container. The language is fairly approachable (saying this as someone who came originally from a Perl Web App background in the late 90s). You can also use Java Libraries if there's something you want to get out of box such as one of the many Open Source Apache Libraries or Google Guava Libraries.

Don't walk alone (1)

rrconan (1082759) | about 3 months ago | (#47362153)

Just use Java.

Java (3, Insightful)

Neruocomp (513658) | about 3 months ago | (#47362167)

Be careful with frameworks, because as soon as you find yourself having to do things outside of its protective little garden, you might as well give up on the framework. But in terms of long lived, go with Java. It has no buzz or the glory the pretty new things have and thats why its still in wide use in the enterprise.

Do it in C (1)

cyberspittle (519754) | about 3 months ago | (#47362173)

Time to put on the DeVo and Whip It. Whip it good.

No good answer (1)

discord5 (798235) | about 3 months ago | (#47362191)

today's rising star could quite easily be in tomorrow's dustbin

Well, at some point Perl was a rising star...

No matter what you're going to pick, it won't stand the test of time in the end.

  • Perl? Dead, done for, the perl community invited to the funeral but the refused to come since they were too busy organizing their next YAPC and having fun.
  • PHP? Waiting to be killed off. CVE-2015-0001 will classify the entire PHP codebase as exploitable, and in a desperate attempt to fix things, the developers will just delete the entire repository except for the mysql_real_escape() function.
  • Ruby? Dead because of scalability issues. The Ruby community collapses onto itself trying to attent Perls funeral, but somehow get lost and finds itself at YAPC wondering why the Perl community didn't even bother showing up at the funeral.
  • Python? Dead because of GIL, and it's either running Jython or IronPython, and nobody wants to sleep with Oracle or Microsoft that badly.
  • Java? Death by 3 and 4 letter acronyms and frameworks of frameworks. Research has shown that long term webdevelopment in Java is considered harmful to your sanity.

Kidding aside, look for a set of qualities in whatever language/framework you want to use:

  • Does it make it easy to do what you want to do?
  • Is there an active developer and user community?
  • Is there decent documentation?
  • Does it offer a SIGNIFICANT advantage to port your existing stuff to this language/framework over the currently used language/framework? (Time being money, and all that)
  • After starting a (small) test-project with it, do you feel confident that it meets your standards for doing real work with it?

I know that it's probably generic bullshit you're getting from me, but you're going to get a thousand answers all screaming at once "Pyramid" "Django" "CakePHP" "CodeIgniter" and what not and unless you take a look at the languages and frameworks and see what people are / have been building with it you'll be none the wiser. Pick something you see yourself maintaining without pulling out all of your hair in the next couple of years.

Like all things, it depends... (1)

yathaid (2106468) | about 3 months ago | (#47362225)

There are a few axis along which you can do the comparison -
1. Developer Productivity - A save and reload framework might be more suitable if that is the existing mindset in your group. This seems to be a very underrated factor while judging your framework/dev set-up.
2. Existing codebase's dependencies - If you have a lot of dependencies which cannot be easily replaced in your new language, that is going to be a problem.
3. Performance of the framework - You want to have at least one large software shop using the framework whom you can use as a guide.
4. Community - This comes down to not just library support for future use cases; the rule of thumb is, if the first few setup issues you are having are easily solved by answers from StackOverflow, you are probably OK.
5. Recruitment - Languages/Frameworks often define the culture of a workplace and directly affect your recruitment base.

Actual Suggestions - 1. Scala/Play - Can use existing Java libraries. Encourages a less verbose coding style than is typical for Java. Twitter moved their Rails circus to Scala. A big con - their language bumps are apparently frequently non backwards compatible. So you might have to hold for a bit until things stabilize.
2. Rails - Easy setup. Solid Community. Good testing framework. Cons - Proven to not scale at Twitter. There are at least two other examples of Rails not scaling. Why jump ship twice eh? Dynamic typing is not exactly helpful when your code reaches a certain LoC count.
3. Golang - Good concurrency model. Easy to read code, almost a C-with-concurrency. Backed by Google; this is not going to be abandoned because a lot of internal Google teams are deeply invested in Go. Cons - Not as popular yet as Scala or Rails, so lesser library support; but rapidly expanding community.

ThoughtWorks has a languages and frameworks radar that can serve as a good 10,000 feet survey of the field - http://www.thoughtworks.com/ra... [thoughtworks.com] . In an ideal world, do not get too invested in any one framework.

The problems with perl - (I work in a large perl shop, if not the largest perl shop.)
Recruiting is a pain.
New devs need to get comfortable with perl idioms; a pattern that seems to encourage code obfuscation more than readability.
Optimal runtime concurrency is impossible. Even if you roll our own Futures library.
Bless is not safe. Consequently, you lose any sort of concrete interfaces.
There is no concept of unit testing.

Java or C# + AngularJS (3, Interesting)

mlk (18543) | about 3 months ago | (#47362249)

Find yourself a good REST writing API (I'd go Jersey & Guice, but many go Spring for Java) and then HTML AngularJS as your front end framework.

Why change? (0)

Anonymous Coward | about 3 months ago | (#47362279)

Changing language for a "newer" one seems like a really dumb reason. Does Perl not meet a specific need?

Crystal Balls (1)

Tablizer (95088) | about 3 months ago | (#47362287)

If someone was able to predict the future that well, they'd be buying out Warren Buffett instead of answering questions on slashdot.

Perl does seem to be on a downward popularity spiral. Whether it merits that or not would turn into a heated debate, so I'm only stating that from the perspective of having enough usage momentum to provide sufficient shop staffing options and support in the future.

PHP would be my rough best guess, if you want a dynamic language in the same general family as Perl. PHP is a bit clunky, but has huge current usage and has not shown any signs of slowing down. IF it started dying tomorrow due to some newfangled language or gizmo, it would take decades to fully kill.

Python and Ruby have failed to fully catch on mainstream, and the "white space" issue still haunts their growth. It just agitates enough developers to keep them down. (I'm not putting a value judgement on the white-space thing here, only looking at perceptions.) Plus, their communities seem to overdue "clever abstraction" coding, at least in terms of what the market prefers. They suffer part of what Lisp does, in terms of market perceptions and reactions to high coding abstraction. The market likes mid-brow languages, not high-brow.

C# is still too tied to Microsoft's fortune, despite having OSS clones. If MS sinks, it may take the clones with it out of industry support/momentum fear (not necessarily language merit).

And Java is currently haunted by Oracle's Big Lawyer ways.

features are more important than "new" (0)

Anonymous Coward | about 3 months ago | (#47362313)

You should look at the security and performance features. I strongly recommend something with memory residence in the web server, persistant database connection pooling, and taint checking (it catches a lot of security bugs). The only languages I know of that meet those critera are Perl (with mod_perl) and Ruby (with mod_ruby).

There's lots of other languages that have the performance features, but they're usually lacking in security. Java would give you the performance from the jvm daemon, but I don't think it has the taint checking, it's got a history of security issues (ie struts2), and (if you care) it eats a lot of memory. PHP has the performance from being embedded in the webserver, but has a long history of security bugs. There's a mod_python that gives you embedded python with db connection stuff.

Perl is the best language I know for parsing and extraction, due to regexps being tightly bound into the language. However, those regexps are less useful in web stuff.

FORTRAN (1)

josquin9 (458669) | about 3 months ago | (#47362325)

. . . at least according to my Dad, who started programming in the late sixties.

"NASA used it to put a man on the moon, dammit. I doubt your projects are more complicated than that, so it should be all you ever need. (Unless you're writing a business application, of course. Then you should use COBOL.)"

"Ossifying" vs. "Stabilizing" (4, Insightful)

DutchUncle (826473) | about 3 months ago | (#47362369)

... because people saying that something is "ossifying" and jumping to the next fad is EXACTLY what makes things "buzzy".
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?