Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Perl Programming

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

Posted by timothy
from the perl-6-will-blow-them-all-away dept.
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?"
This discussion has been archived. No new comments can be posted.

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

Comments Filter:
  • Perl (Score:5, Interesting)

    by XanC (644172) on Tuesday July 01, 2014 @12:43PM (#47361753)

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

    • Re:Perl (Score:5, Funny)

      by Anonymous Coward on Tuesday July 01, 2014 @12:51PM (#47361833)

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

      Random garbage or valid perl?

      • Re:Perl (Score:5, Funny)

        by trudslev (693655) on Tuesday July 01, 2014 @12:52PM (#47361853) Homepage
        Valid garbage or random perl?
      • Re:Perl (Score:5, Insightful)

        by just_another_sean (919159) on Tuesday July 01, 2014 @12:54PM (#47361877) Homepage Journal

        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 (Score:5, Insightful)

          by MouseTheLuckyDog (2752443) on Tuesday July 01, 2014 @01:00PM (#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: (Score:3, Insightful)

            by MBGMorden (803437)

            That's the crux of the issue. A good language shouldn't be one that lets you code cleanly - it should do its very best to make sure you CAN'T code sloppily.

            • Re:Perl (Score:5, Insightful)

              by Sarten-X (1102295) on Tuesday July 01, 2014 @02:53PM (#47363099) Homepage

              A good language ... should do its very best to make sure you CAN'T code sloppily.

              Exactly, just like a good spoken language should make sure you CAN'T use profanity.

              ...But then, what about when profanity is appropriate? What if you need an emphasis that is so fucking strong that simply changing the tone of voice doesn't suffice? What if your whole damned speech is in reference to something condemned by a deity, or referring to Mohammed the thief, who assumed the name of the prophet?

              The point of any language is to express. For programming languages, the idea is to express instructions for two different processing styles simultaneously: the deterministic and predetermined understanding of the parser, and the non-deterministic and subjective understanding of colleagues. Similarly, spoken languages must account for the subjective understandings of every listener, some of which may have very different rules regarding obscenity.

              There is much more to coding "cleanly" than mere syntax. Structure is equally important, and it must change as the system design demands. If the rules of a language are too strict, then the whole program starts to look the same, and it's more difficult for future interpreters to understand the intent of the program.

              There is an art to writing clean code, just as there's an art to writing eloquent language. Strict rules don't always improve that art.

          • You can write illegible programs in any language, perl must makes it easier.
            • Re: (Score:3, Insightful)

              by GeekBird (187825)

              Agreed, which is why I get really annoyed with Python bigots. My main exposures to python have been trash piles like Anaconda and cowboy crap that is seven layers of libraries to implement and process check that has such poor syntax that it can't even fail, no matter how screwed the process.

              I've seen incomprehensible junk written in tcl, bash, java, javascript, c, c++, visual basic, fortran, cobol, basic and assembler, most often written by "experienced" coders who think comments and structure are anathema

      • by Newander (255463)

        So your beef is with Regular Expressions?

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

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

      • Re:Perl (Score:5, Funny)

        by Mordok-DestroyerOfWo (1000167) on Tuesday July 01, 2014 @01:14PM (#47362073)

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

        Random garbage or valid perl?

        Why can't it be both?

      • by Anonymous Coward

        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 (Score:5, Funny)

        by Cro Magnon (467622) on Tuesday July 01, 2014 @03:48PM (#47363529) Homepage Journal

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

        Random garbage or valid perl?

        Yes.

      • by Xyrus (755017)

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

        Random garbage or valid perl?

        Spoiler: "DRINK MORE OVALTINE!"

    • Re: (Score:2, Funny)

      by Anonymous Coward

      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.

    • Hiring (Score:5, Interesting)

      by oneiros27 (46144) on Tuesday July 01, 2014 @02:10PM (#47362677) Homepage

      Most of the people who know Perl well already have jobs, and aren't looking to change.

      We tried hiring someone to help me offload some of my work, and one the task I've gotten behind on is updating & maintaining some Perl code.

      We had one person who I felt could've jumped in, but that management didn't like (as he had previously worked here, and left). The rest were folks who we'd have to train on OO, closures, and other higher level concepts.

      If this hasn't been offered as a 12-month position, maybe we could've found someone. If we had advertised it as a general programming job, and then taught someone Perl, maybe it would've been gone better for us.

      With trendy languages, you at least get people willing to apply -- even if it's the case that they don't grok the language, you at least get someone you can train up.

  • by OpenSourced (323149) on Tuesday July 01, 2014 @12:45PM (#47361779) Journal

    Which editor should we use?

  • by ShaunC (203807) on Tuesday July 01, 2014 @12:47PM (#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: (Score:3, Informative)

      by xmousex (661995)

      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 everyon

    • Re: (Score:2, Insightful)

      by tigersha (151319)

      > PHP is relatively modern, robust

      No it isn't

      • by Mordok-DestroyerOfWo (1000167) on Tuesday July 01, 2014 @01:15PM (#47362087)

        > PHP is relatively modern, robust

        No it isn't

        Skillfully refuted!

      • 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.

        • by ttucker (2884057)

          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.

          Besides that Facebook isn't. They use a proprietary solution that started with PHP, but is really something else now.

      • by itzly (3699663) on Tuesday July 01, 2014 @01:47PM (#47362473)
        That's not an argument. An argument is a connected series of statements intended to establish a proposition.
    • by Vellmont (569020) on Tuesday July 01, 2014 @01:04PM (#47361965) Homepage

      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]

      • by lucm (889690)

        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: (Score:3, Interesting)

          by tepples (727027)

          Most of it applies to old, obsolete versions of PHP.

          Which might be the only versions that your hosting provider offers because upgrading PHP would change the language's semantics in ways that break other subscribers' programs.

      • by Nemyst (1383049)
        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.
      • by tepples (727027) <tepples&gmail,com> on Tuesday July 01, 2014 @01:38PM (#47362361) Homepage Journal

        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.
    • 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

      • by lucm (889690)

        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.

      • by Alioth (221270)

        I thought PHP meant "Pretty Hopeless Privacy" due to its track record of security flaws...

    • by Jesus_666 (702802) on Tuesday July 01, 2014 @04:01PM (#47363631)
      PHP is the boring, reliable choice. It's popular enough that it's probably still going to be mainstream in twenty years. The ease of entry means a steady stream of neophytes who end up checking out PHP at their first web language.

      It's not a pretty language but you can be reasonably certain that for the forseeable future it's going to stay. It's nowhere near as nice as Ruby on Rails or Python/Django but it does have a huge market share so there's both relatively many people who speak it and a lot of ready-to-use code, from snippets to frameworks.

      The huge amount of available code is a bit of a mixed bag, though - PHP attracts a lot of entry-level coders and in many cases it shows. On the one hand you have things like Twig (a clone of Django's template engine) that are a delight to work with; on the other hand you have things like most WordPress plugins, which consist of barely-working code written by someone who thinks that "model-view-controller" involves Kate Moss staring at a gamepad. The fact that PHP makes it easy to write code that is wrong but still runs doesn't help here.

      PHP has flaws. A lot of them. It's a pretty annoying language to work with. But it's not going to fade away anytime soon and that is its strength. If that makes it desirable to you then PHP is a reasonable choice. If it doesn't you might want to stay with Perl or take a look at trendier languages like Ruby, Python or JavaScript.
    • I know it's in vogue to hate on PHP,

      I don't hate PHP. I just don't use it unless I have to.

      but PHP is relatively modern, robust, and fully capable of handling enterprise tasks.

      I'm not sure what you mean by "relatively modern". If you mean it is younger then Perl, that is true. 20 years old vs Perl's 26 years.

      Both languages have evolved, adopting new ideas and adapting to new needs. They both borrow from other languages and from each other. Indeed PHP started out as a set of Perl scripts. A side effect of this was that PHP 1.0 (released in 1995) "syntax resembled that of Perl" (http://en.wikipedia.org/wiki/PHP).

      Both are "fully

  • Node.js (Score:2, Interesting)

    by Anonymous Coward

    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.

    • >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?

      • by pooh666 (624584)
        I bet you use too.
      • 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.

        • 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: (Score:3, Informative)

            by jbolden (176878)

            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.

            • Unless it is executed on the server, ofc ;D

    • by SQLGuru (980662)

      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.

    • Most developers only use JavaScript because it's their only realistic option on the client side for web-based applications. It's kind of like the QWERTY standard: you have to use it because avoiding it is made difficult by entrenchment.

      I don't know if better tools (IDE's, interpreters, lint-er's, etc.) could make it more tolerable, but most of us have had a crappy experience with JavaScript in browsers, and this has damaged its reputation such that unless something comes along that repairs its reputation o

  • PHP or Java?

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

  • by TechyImmigrant (175943) on Tuesday July 01, 2014 @12:49PM (#47361811) Journal

    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.

    • by Nemyst (1383049)
      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.
  • 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

    • by Dracos (107777)

      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...

      • by brokenin2 (103006) *

        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

  • by garlicbready (846542) on Tuesday July 01, 2014 @12:57PM (#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

    • 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.

    • by Sowelu (713889)

      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?

  • by Unequivocal (155957) on Tuesday July 01, 2014 @12:58PM (#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.

  • by ksbraunsdorf (1600073) on Tuesday July 01, 2014 @01:03PM (#47361963) Homepage
    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.

  • What could possibley go wrong with that?
  • Very powerful and very flexible, without the heavy lifting of many frameworks. We use on a large ISP as RESTFull Server.
  • by MouseTheLuckyDog (2752443) on Tuesday July 01, 2014 @01:17PM (#47362121)

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

  • by Lobo42 (723131)

    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.

  • Java (Score:3, Insightful)

    by Neruocomp (513658) on Tuesday July 01, 2014 @01:21PM (#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.
  • 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() f
  • by mlk (18543) <[michael.lloyd.l ... [at] [gmail.com]> on Tuesday July 01, 2014 @01:29PM (#47362249) Homepage Journal

    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.

  • 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 c

  • by DutchUncle (826473) on Tuesday July 01, 2014 @01:38PM (#47362369)
    ... because people saying that something is "ossifying" and jumping to the next fad is EXACTLY what makes things "buzzy".
  • I'm not going to take sides on 'what language to learn next.' You've not given us enough information on your codebase, the size and nature of your company, etc. I would say a rewrite is as likely to put you out of business than not, but that's ultimately your choice and unless I know all the factors I can't tell you if its a risk worth doing.

    Regarding the link you gave on Perl 'ossifying', there was actually a signification discussion on the Perl Reddit about that article which I want to point out:

    http://www.reddit.com/r/perl/c... [reddit.com]

    I would say the website that generated that article seems to be some sort of SEO play (they just have a bunch of articles on stuff that has some interest and controversy) and they stick ads on it. There's nothing mentioned in it that hasn't been mentioned 100K elsewhere (including here on Slashdot).

    Perl has pluses and minuses but I've made a good career at it, and most of the code I've worked with is newer (seldom more for 5 or 6 years old), not legacy stuff from before the first dot com bubble. I'll probably make 200K this year, so I can't say its a bad choice. I work with lots of fun people as well. I also like Javascript. If I was starting today I might choose Scala, its a nice clean, fast language with a lot of forward looking concepts. Best of luck whatever you do.

  • by turp182 (1020263) on Tuesday July 01, 2014 @02:15PM (#47362731) Journal

    The key word in the summary is "legacy". This indicates that there is a large code base that the current developers are not too familiar with (deep knowledge, staff turnover causes this). This causes an organization to fear change due to the related complexity of changes and potential regression bugs. I'm going to guess that there aren't large, mature suites of unit and regression tests.

    So I believe you have:
    1. Complex code base without a lot of deep developer knowledge of the innards.
    2. Fear to change things too much due to complexity and the possibility of introducing bugs.
    3. Do not have effective, wide coverage testing implemented.

    But, you also have good knowledge of Perl and the architectural elements that compose the system (server software, external libraries, etc.). That knowledge is very valuable and shouldn't be dismissed just for the sake of changing the base language of a system. And you have a working system. How many person years of development have been put into it? Are you willing to spend that much time on the replacement (do you think a replacement could be built in less time, and if so, why?)?

    As well, rewriting large admin systems is very risky. I've personally seen two such efforts fail, a 100% failure rate from my personal experience (both had budgets over $5 million, one was over $40 million). Here's an article on this topic:
    http://hbr.org/2011/09/why-you... [hbr.org]

    Consider keeping the existing system, but embarking on a long term (years) modernization/re-design/improvement effort to make the system more modern (ie. easier to work with). Focus on small, non-breaking changes that can go out with regular enhancement promotions (the modernization effort should be able to stop at any point, with any improvements to the system staying in place - this allows for tight budget control and financial risk mitigation). Hire a good application DBA to perform analysis and recommend changes to the data model. Hire a good software architect or bring in architectural consultants that can bring a different perspective to the understanding of the application, its goals, and how it could be improved.

    Here's an article on approaching IT projects in a "Small and Simple" manner:
    http://w.objectwatch.com/white... [objectwatch.com]

    • by turp182 (1020263)

      Another approach rather than in-place same-tech modernization is the Strangler Pattern, coined by Martin Fowler.

      This involves building a new application (or applications, utilities can be important) "around the edges" of the existing one, rewriting functionality aspects into a new system; chipping away at the old system (give the users a better solution for some things and they will not mind working with two systems).

      Here's Mr. Fowler's original article about such:
      http://martinfowler.com/bliki/... [martinfowler.com]

  • by Laz10 (708792) on Tuesday July 01, 2014 @03:51PM (#47363551)

    Generating HTML on the server is more or less outdated.
    So a "web language" on the server doesn't make sense, the way it used to do (like perl cgi, ASP, JSP, PHP and decendents)

    What you do now is write the frontend in one of the new JS/HTML frameworks that run exclusivly on the client.
    AngularJS is popular and will likely stick around in one form or another. But pick any you like.

    For the backend you want to expose REST services, that serves the content in a way that is easy to digest for the frontend (so you don't end up with too much logic out there).
    For that I'd recommend taking a look at Scala (10 years old, and not going away) and the Play Framework (http://www.playframework.com/)
    What is nice about the Play framework is that it not only makes it easy to expose REST services. It also makes it easier to deploy the client side framework.

    Also take a look at using microservices. Using that architecture enables you to write the REST services in smaller components, rather than one big server. That way you can more easily replace each service, when you want to migrate to the next backend technology.

"They that can give up essential liberty to obtain a little temporary saftey deserve neither liberty not saftey." -- Benjamin Franklin, 1759

Working...