KillerSites Blog

Ruby

Java for Apps in 2019

May 21, 2019

First things first, a kick-ass opening for this vlog with a (literally, for those afraid of heights) breath-taking view of Montreal, and then back into the “studio” to check out my rig (drums), all to a slick tune in the background. Maybe we’ll call this segment, “Weeee, so fly.”

But let’s dive right into it… Should you use JAVA for back end web app development?

A very specific question deserves a very specific answer: “At the end of the day you have to always judge your technology stacks based on both technical implications of the choice and market implications.”

Technology implications: Do you have experience with the language you’re using? Are you comfortable as programmer? “It depends how nerdy you are, if you are very comfortable writing code, you’re very comfortable as a developer and you’ve done web apps before, yeah, JAVA, could be a good choice, but you gotta consider more than just the technical aspects of the language…”

In terms of market implications: “…are there jobs there? Is there a long road ahead for that particular technology stack?”
Now, there are plenty of jobs in JAVA but they tend to be in or with larger businesses/ organizations. Even with smaller businesses or freelance work “JAVA would not be my first, second, or third choice…”.

Check out the video for a super detailed answer to this question and the more broad lesson that we’re trying to teach: What can you do Vs. what will the market pay you for. Also, did you find our RUBY diss(es)? Oh, yeah, there might be more than one!
Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/
My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…
My social links: Instagram: https://www.instagram.com/stefanmisch…
Twitter: https://twitter.com/killersites

read more

Don’t Make Me Choose…! Client Side Rendering vs Server Side – Which is Best?

April 10, 2019

Alright we’re going to lightly touch on this and if there’s enough of a public outcry, we’ll gladly do a deep dive but for now let’s skim over client side Vs. server side rendering. YAY!!

Now, full disclosure: It’s better to watch the video than to spend time reading what’s being written. The video is quick articulate and makes good and knowledgeable arguments for sides better than writing this out. But if you still feel like reading on, here’s the (very) skinny…

CLIENT SIDE RENDERING: So when you’re looking at the app/website, the views you render/send out (to the web browser) for the client to see. Generally you want to keep the views pretty simple when it comes to the processing power behind it.
The downside? Not everyone has the same hardware on their computers and may encounter trouble viewing the page (ex: web browsers not up to date, lag, slow load times, etc.)

SERVER SIDE: Does not rely on your viewers having the most up to date web-browser or fastest computer but it does require a lot of server side processing power…

So what’s a dev to do?

Check out our video for answers and opinions.  Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Which Programming Languages will be Most Popular in the Future?

March 27, 2019

Which programming languages will be the most popular in 2-3 years from now? Should you even care?

Since the dawn of time, man has looked up to the sky and wondered what the future will bring…
Where will we live?
Will Pokemon revolt and catch US for their own twisted means?
…And what will the programming languages of the future be?

Well we’re not gonna sit here and cook something up, my crystal ball is gathering dust in the closet and I’m only going to bring it out when it attains “vintage” status, so I can sell it for a killing on craigslist…

But, by market share PHP is the biggest. It’s got to the point [where] “…none of these languages are going to go away any time soon, simply because they’ve reached that tipping point where they’re woven into the nerd language.”

It’s really the same thing with all the BIG languages. They’re part of the background and still very much a part of the forefront. They are relatively easy to use, convent and almost universally understood by virtually all of the developer community (even though opinions on them will differ wildly…)

Thinking about it from a practical standpoint, with the corporations you work(ed) for, let alone huge multi-nationals regarding the languages they use in their products: “…they’ve all gotten so good now that there’s no real major reason to want to change from one technology platform to another… for some company to want to move off PHP to PYTHON there has to be something really compelling about PYTHON or something really bad about PHP.”

Check out our video, where we explain our “theory” and drop some hints about what we think the future will ultimately bring…plus catch the (backhanded) nod to RUBY (we should be keeping track of these…). Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Holy Bores: Programming Languages Are Not Religions

March 26, 2019

In the name of the JAVA;
The RUN(time),
And  the HTML / PYTHON
                         …DRUPAL.

THIS just in, from the Department of Urban Humanity or “DUH”: Programming Languages Are Not Religions! You’re all grown up professionals and we’re sure you have better things to do with your time than this, right?

Now if this doesn’t apply to you, please click on the video and enjoy the show…
But if you feel like “yeah but”-ing us about this, know that this isn’t a good look for you: both personally and professionally. Personally you come across as an arrogant jerk that has a “my way or the highway” approach (and not in a fun, sassy way), and professionally, well, you look like an amateur or a stunted, mid-level programmer that has no imagination or flexibility.

I know that seems harsh but it’s just such a waste of time when there’s amazing and inspired work to be done. Truly creative stuff that transcends the boundaries of algorithms and languages; and here we are chirping each other out cuz we don’t like the other person’s choice of programming language? C’mon!!

If you still feel the need to argue over this, might we suggest taking all that good energy and hitting the gym?  Or maybe going to an actual church, breathing in some incense and chilling out in the back pew to some hymns? I mean, it should go without saying that even religions themselves shouldn’t be argued over like they’re religions, but here we are…

I don’r really know how to end this except by saying, be cool to each other guys. Life’s too short and you got better things to do with your time.
Unless you’re using RUBY, ya backwoods savages!! …just kidding!! …ish…

Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Now You’re Speaking My Language

March 14, 2019

What Programming Languages do the Most Popular Websites Use? The results may surprise you!

So, I was on what the kids call wiki-wiki-pedia the other day and I thought I’d look up what programming languages the most popular websites use. I know, most people look for civil war factoids or if their favorite band from their teenage years is still around but I guess I’m just weird like that…

Now, I’ll be honest with you, it’s better to watch this vid to see firsthand what I’m talking about but, quick spoiler, on the front end (that’s to say “code that lives in the web browser”.) it’s all JavaScript. But what’s most surprising is the back end where it’s almost all JAVA, PYTHON, C, C++, PHP, etc. Yup, pretty surprising (or not, if you’re pretending to be one of those “I’ve seen it all” programmers). The reason I bring this to your attention is that I want to “give you some insight into how effective a programming language is; how ‘serious’ a programming language is…Some people look at a programming language and say ‘it’s not serious, it can’t work on big projects’.” Well when you consider what these giants of the industry are doing (and you’re assuming they know their onions), you start to see that these languages are still very capable of doing the “heavy lifting”.

But seriously, check out the vid to put it all into context.
Also, blink and you might miss it: another quick dig at RUBY (mwahaha). Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

DRUPAL Jobs In 2019

March 12, 2019

Widely used by some big name organizations like Nasa and Harvard, is a job working with DRUPAL outdated in 2019?

DRUPAL is (arguably) the 2nd most popular CMS in the world…second only to WordPress (again, arguably…). There a many high paying DRUPAL jobs out there. To work with DRUPAL, you need to know HTML5, CSS3, some JavaScript and PHP … and of course, you need to know DRUPAL.
We’ve been asked if DRUPAL is a dinosaur, an aging language that won’t matter in the years to come and if anyone who works in it will be working towards obsolescence (whoa…heavy, huh?).

Well the short answer is “…no…”
The long answer is (thankfully) a little more detailed and available here in what I’d like to be the first to describe as a “Sausage” explanation. In that it is both meaty (detailed) and has a hint of spiciness (fun nerd ranting) mixed in…yeah, ya know what never mind, I’m regretting this metaphor already…apologies…
Suffice it to say that it’s better to experience this explanation in it’s entirety, with the relevant senses than to write it out. Plus, there a bonus RUBY dig (mwahaha…). Long story short if this is a first job for you, we all have to start somewhere and work looks good on a resume no matter what (not to mention experience) and you’d be surprised how many languages are still being used today…
Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Is Kotlin Important In 2019?

March 12, 2019

Kotlin is a general purpose, open source, statically typed “pragmatic” programming language developed by “Jetbrains” and endorsed by Google. As a light, nimble way to take advantage of the vast Java ecosystem and libraries, without the weight of Java code, spoiler alert…it’s gonna be pretty awesome. Now that being said, should you drop everything (including JAVA) and start learning KOTLIN?

Not necessarily. As we’ve said before stick to your fundamentals/basics, remember: “Newb programmers will think in terms of languages, -OMG, my career is based on THIS language- The reality of the situation is advanced developers will move from language to language, from framework to framework, depending on the requirements of the job at hand, depending on where the work is.”

So what’s the big deal about KOTLIN? Well it’s more about what KOTLIN represents… it’s a lighter/faster version of JAVA, it’s pretty versatile in terms of what it can be used for (including android apps), and to put that into perspective, “lighter languages tend to win out over other heavier, more verbose languages”. With computers getting more and more powerful and faster and faster, the preferential choice is given to languages that are quick, adaptable and versatile, and KOTLIN checks all these boxes.

Now, like we said in the second paragraph, there’s no need to drop everything and worship new and fast, especially if you already know JAVA, JAVASCRIPT, C#, PYTHON, PHP, etc… they share so many similarities that you could jump into them relatively easily. If anything, rejoice guys! Stick to you basics and your job may be faster and easier…and hopefully more fun too.

Click here for some hardcore mountain-driving scenery, which will turn into city driving, but not before we give RUBY the slightest little dig…mwahaha.
Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Should you Learn C# in 2019?

March 5, 2019

C# is probably Microsoft’s flagship language … is it worth learning 2019?

Well, is it worth learning? “If you want to interact with the Microsoft(MS) stack: …building web-based apps that are going to be interfacing with back-end MS technologies…AND you learn C# if you want to get into game programming with UNITY as an example”

Based around JAVA, this modern language was built by MS to function like JAVA but with some “robust” differences… But enough about that, let’s talk jobs!

There are lot of job opportunities working on .Net architecture (ie: web apps), mostly with big corporations…however most of them will require certification in C#. The good news, if you try it out and decide that C# is not for you, you haven’t wasted your time at all, because “all these modern languages(C#, JAVA, Dart, ,etc.) are based on the same principles [more or less]”. If you’ve learned C#, it’s like 80% transferable, “…you cannot lose when you learn a programming language…”

Check out the VLOG for a more in depth explanation, some wisdom about the game developer experience and a little heart2heart…awww. Enjoy!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My business courses:
Complete Freelancer: https://www.killervideostore.com/free…
Complete Entrepreneur: https://www.killervideostore.com/vide…

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Part1 Gettin’ DIS’d: Developer Imposter Syndrome

February 8, 2019

So, you’ve been a developer for maybe two or three years? You’ve got some gigs and you’ve gotten paid and now you’re starting to work with the big fish… You’re maybe even working alongside other developers with 5-8 years of experience and suddenly you feel a kick in the pit of your gut… “WTF am I doing here?”
“I’m wayyyy in over my head, everyone knows what’s going on; they get their work done faster, they know which languages to use for any given situation. I don’t belong here.”
Ya just got DIS’d, son!
Yup, developer imposter syndrome…’d.

Now for some of you I may be spot on and for others, you either have felt this way and gotten past it <bravo>, or you haven’t crossed this particularly crappy bridge yet. And though I know it’s hard to come to any universal agreement on the internet, I think even in the back of our mind we can understand, sympathetically, “You can never ignore the emotional aspects of anything you do in life; especially career.”

Everyone Gets DIS’d, Bro:
(yes, I’m enjoying the hell outta this acronym)
But seriously, as unpleasant and humbling as these feelings are, they are completely normal. Everyone has felt these feels; even outside of the development field (it’s just called plain “Imposter Syndrome”, I know IS = boring acronym, but you should look it up). Ironically, feeling like we don’t belong (an Imposter), is something that everyone feels at one time or another. And perversely, it’s kind of a milestone; it means you’re “moving up in the ranks” and coming into your own by being around other more experienced programmers/devs who you should be taking the opportunity to learn from, or if you’re a little more solitary in your work, branching out finding a community you can learn from and feel supported in.

Alright I Got DIS’d, Now What?
(Still not tired of it, mwahaha.)
Guess what? “There is no unicorn developer”, that is to say there’s no one that know every language, has been in every situation and knows everything. If there was, clients would just hire him/her and there would never be a need for anymore programmers or devs. Check out this vlog: if for no other reason than to see me freezing my butt off in the cold as we switch from a tight “man on a mission” shot to FPS mode and then the car for some “real talk”… It’s a fun way to talk about what can be a pretty frustrating subject. Me? I’m gonna sit here and think of how I can work this acronym into a sentence where I DIS your mom! OOOOOOHHHHH, snap!
Enjoy!

PS – RUBY gets a backhanded compliment FTW!

My popular courses:
Learn web development fast: https://shop.killervideostore.com/
Learn Python 3 fast: http://www.killervideostore.com/python/

My social links:
Instagram: https://www.instagram.com/stefanmischook
Twitter: https://twitter.com/killersites

read more

Writing a standlone, threaded application using Ruby On Rails

January 20, 2007

ruby language logo

Hi,

A little while back I asked my brother (a big Java nerd) to explore using Ruby to rewrite a threaded Java web application – a site monitor.

The results have been really cool so far. So cool in fact that I asked him to write an article on his experience.

NERD ALERT: This article is written for programmers.



Writing a standlone, threaded application using Ruby On Rails

By Richard Mischook

Awhile back I wrote a Java application designed to monitor web sites to ensure they are up and running. The Site Monitor service is hosted on the web and allows a user to sign up and add a site to a database that is routinely monitored by the engine.

When the engine finds that a site is down, a log entry is made and the owner is sent an email letting them know that they might want to look into it; if and when the site is back up, another log entry is made and once again the owner is emailed.

The development of the application took a little longer than expected and alas, has had a number of teething pains. On more than a few occasions we have asked ourselves if another set of implementation choices might have been better, such as a technology other than Java.

In addition, rather than delivering the tool as a hosted service, would it make sense to deliver some sort of standalone application that a user could download and run on their own desktop?

Around the same time I had been messing around with Ruby On Rails which as many of you will know, is a web application framework build on the Ruby scripting language. One of the central promises of Rails is a framework that allows the delivery of powerful results quickly.

The questions then:

  • Could the Site Monitor be delivered using Rails and if so;
  • How long would it take and would it be better than the existing solution?

Requirements

The Java version of Site Monitor is actually reasonably sophisticated and supports a range of features which I will not exhaustively list here.

Instead lets look at the main features we wanted to see in the Rails version:

  • Support for multiple sites checked concurrently, with sites double or tripple checked to make sure they were really down.
  • Support for multiple control sites to verify that the internet connection to the outside world is up
  • Support for multiple notification email addresses and mobile phone numbers (for SMS notification)
  • Configurable by the user with the choices saved to a file that is loaded when the engine is re-started
  • An Ajax-based user interface allowing the user to a) configure the engine and b) capable of displaying engine activity
  • An easy to install application suitable for Microsoft Windows users.

An example of the user interface can be seen in the screen shots. The web interface leverages the Ajax support built into Rails and allowed me to deliver a richer user interface than normally found in traditional web applications

site monitor control panel

In fact as I’ll show later, some limitations in the Ruby threading model made it necessary for me to use the Ajax support in a way that I had not originally anticipated.

The hardest requirements to fulfill were going to be the first and the last:

i) support for concurrent checking and ii) an easy to install application.

Most of this paper will be about how I tried to address the first requirement, but I will discuss the second as well.

site monitor control panel

Concurrency in Ruby

In the original Java version of the application, a timer ran from time to time (say once a minute) and invoked a method to load a list of sites to check from a database. A Java thread was retrieved from a thread pool for each site that required checking; this meant that more than one site could be checked at a time.

This was important because it might take awhile to finish checking a site since we were actually double or tripple checking sites that did not respond (in order to avoid false positives). Without threads, it would take significantly longer to check a stack of sites as each site would be required to wait in line (so to speak) to be checked.

The good news was that Ruby has a threading model and it seemed very easy to implement. The check_sites method below (which is abbreviated for clarity) illustrates the main logic which is essentially:

  • for each site (line 2), spawn a thread (line 3) and execute the block of code from lines 3-17
  • check the site (line 5)
  • if the site does not respond (line 7) and we have verified count number of times that the site is down, let the user know (line 11)

-

1 def check_sites(sites)
2 sites.each do |site|
3 threads < < Thread.new(site) { |mySite| 4 begin 5 ping_site(mySite) # actually ping the site 6 handle_up(mySite, ...) # site is up so let user know IF site was down before 7 rescue ConnectException => c #if here then no response
8 count = count - 1 #count is set to some value above (not shown)
9
10 if count == 0 #log it and send mail
11 handle_down(mySite, ...) #another method that logs and sends email not shown here
12 break;
13 else
14 #check control sites [not shown]
15 end
16 end
17 }
18 end
19 threads.each { |aThread| aThread.join }
20 end

-

Note that there are few key bits missing from the above so don’t expect it to run by itself. That said the principle is sound and means that given an array of sites to check, processing will happen concurrently. But there is an issue that I did not anticipate: any code calling this method will block until all the child threads created in check_sites are done. This is a problem because what I had planned was to define a method like the following:

1 def start_engine
2 # load some sites ...
3 while(true)
4 sites = ... #not shown - code to load sites
5 threads = []
6 threads < < Thread.new(sites) { |mySites| 7 check_sites(mySites) 8 } 9 threads.each {|t| t.join} 10 sleep(30) #sleep for 30 seconds 11 end #end of while loop 12 end

The start_engine method starts a loop that:

  • Loads a list of sites to check (line 4)
  • Creates a new thread and calls the check_sites method with the sites (lines 6 and 7)
  • Goes to sleep for 30 seconds (line 10)

The plan was for the sleep() call to happen immediately after calling check_sites but before all the checking was done, i.e. not block. Unfortunately Ruby doesn't work that way; in fact what actually happens is that the call to sleep() only happens after all the threads in check_sites have finished executing.

The other really big problem is that since the while loop is always running, the Rails server (e.g Webrick or Mongrel) is always blocked meaning it cannot serve any further requests - such as my web browser Ajax call to find out the current status. All of this meaning that I needed another way to do the job done by start_engine, i.e. another way of periodically calling check_sites.

You may be wondering why I wanted to run this in a Rails server at all? One answer is that I wanted to do the user interface as an Ajax-enabled web page but also wanted the user to be able to start the server and have the engine running in the background. Alas this was not going to work.

ruby site monitor interface

I thought for a second that I might need to think about spawning some seperate processes (rather than relying on Ruby threads), but that looked like a lot of work. I did look at using the backgroundrb library (a Ruby library for simplifying distributed, interprocess communication) but it is not supported on Windows (crappy toy operationg system *&&^%$). Instead I decided a compromise was in order.

Using Ajax to Run the Engine

The problem then: how do I replace the start_engine method such that I can get the server code to periodically check my sites (while allowing other stuff to work)? Well the answer simply enough was to embed a Rails periodically_call_remote tag in my index.rhtml page; the tag sends an Ajax request every so often to the server that gets it to call check_sites. In fact I also embedded a second periodically_call_remote tag that refreshes the user interface console so the user sees what is going on.

There is still a problem though: check_sites can still take some time if you are checking more than one or two sites and any fail to respond. While this is happening (the checking), the Rails server will be unable to answer any UI refresh calls (coming from the second periodically_call_remote tag). Still, not the end of the world as this version is meant for a single user checking a very small number of sites. On the other hand frankly, this is not the most elegant solution and one I would like to change.

In fact I did look at trying to spawn the Monitor in a seperate process using a fork call. Unfortunately the implementation on Windows is broken (anyone see a theme developing here?) In fact the Programming Ruby book's section on processes does suggest that support for forking is limited, which is better than the API documentation's thunderous silence on the matter.

Lesson then: Ruby is Unix-centric by default - live with it.

I did try and get around it by installing a set of gems associated with the Win32 Utils project - specifically win32-process. I did have some luck with this but not enough (the main issue having to do with class loading woes).

I do think that there is some potential in this route, but it would require me to spend a bit more time making sure the Monitor code is free of any Rails dependencies. In the meantime my next little project may be to start playing with win32-process to see if I can get it to work the way I think it should work.

Packaging Up the Whole Thing

I mentioned earlier that one of my other requirements was to try and package this thing up in such a way that I could distribute it as a single, easy-to-use windows exe or equivalent. What I was in fact hoping for was the ability of users to download the whole thing without having to install Ruby or Rails or any of the gems used by the application.

Now admitedly this was something of a tall order; but I was led to believe that it was worth looking at given an article entitled Distributing Rails Apps: A Tutorial.

Unfortunately my attempts have not met with any success; in fact when running the various tools I'm not really getting any feedback that indicates what, if anything went wrong, other than the fact that things just are not working (to be fair I only spent about 15 minutes on this). So I have added this to my list of things to look into; in fact it's top of the list since not getting this working will make distribution that much harder. I'll post a follow up if I have any luck on this front.

Conclusions

The application I re-built in Ruby actually works pretty well and the Ajax user interface does what I hoped it would do - even if it doesn't win any beauty contests. But Ruby threading, while easy to implement, suffers from a few limitations such as:

  • When spawning new child threads, the parent thread needs to block waiting for all the little kiddy threads to do their thing.
  • This is made even more of a pain by the fact that the main Rails runners, Mongrel and Webrick, can only handle one request at a time - period. It would be nice if someone could write an easy-to-use proxy that wraps a couple of Webrick/Mongrels so that you can have a single container that supports concurrent requests (yes I know you can do this with Apache but that requires that I do some work when all I want is a development environment that can support say - 2 concurrent requests).

Which brings me to another issue with Rails in general that has nagged at me: its reliance on process-based request handling. Each request has to be handled by a dedicated process which would seem to have the potential for limiting the scalibility of a Rails application.

Now I know that this debate has been raging elsewhere on the Interweb and I must confess I have not looked into it in great detail. At the very least it would suggest to me that anyone designing a Rails application really does need to keep that in mind, especially with regard to managing connections to databases. While that's a side issue, I invite any comments (and pointers) on the matter.

One last thing - my main interest in Rails has been fueled by my ever increasing lack of patience. Not so very long ago I was happy to spend days trying to understand some new API or product that promissed to be the next cool thing. This, some might say, was a prerequisite for becoming a Java J2EE developer.

These days, I have a wife and a baby, TV shows I want to watch, books I want to read - in other words - lots of other things I want to do. I want to get my work done NOW. I want to work with tools that are enablers - rather than impediments.

We're not there yet and truth be told, Rails is very good for developing data-driven green field web applications; but there are limits to what it can do and one wonders if it can (or indeed should) grow beyond these.

References

Programming Ruby: The Pragmatic Programmers' Guide, Dave Thomas

read more