I came upon similar crossroads several years ago. Granted, I'm not a
programmer by trade, but I do have several personal projects that I work
on. I had done some large module development for Drupal in PHP over several
years, and once I reached the point where I was fighting to override Drupal
more than I was spending time adding new functionality, I started looking
at web frameworks rather than modifying CMS platforms. I was also growing
tired of the PHP inconsistencies and the inability to properly debug.

After some research, I came down to Perl/Mason, Ruby/Rails and
Python/Django. I was already familiar with Perl, less so with Python from
work, and had no experience with Ruby. After reading the flame wars between
the languages on forums with posters asking the same question, I decided
the best way was just to dive in and try it myself. I didn't particularly
want to go down the Perl route, as I had spent countless hours fighting
with CPAN getting modules installed for work scripts. I decided to start
with Ruby and Rails. This was around the time that 1.8 was dubbed a
horrible mess and 1.9 was still fresh and slightly buggy. After fighting
with that issue, I spent several days trying to figure out what was
required for RoR, installing gems, and learning Ruby in general. I still to
this day have no idea what a symbol is, nor the proper time to use it.
After a few weeks of trying and working around all of the system-specific
issues I was having, I think I managed to get a working version of a basic
site up. Having 'conquered' RoR, I moved on to Python/Django. Python and
Ruby are somewhat similar in terms of layout and even syntax at a very
basic level, so the transition wasn't difficult. What attracted me to
Python/Django, though, is the lack of 'magic' behind the scenes. I felt
like RoR was making decisions for me behind the scenes, and I had little
control. Not that I necessarily needed control at that point, but given my
previous experience with Drupal/PHP, it gave me reason for pause.
Python/Django is clean, without magic, easy to read, and almost forces you
to be a good programmer with indentations, simple syntax, etc. After
running through the Django tutorial in a couple of hours (1.3 had just come
out at the time with CBV's as the prominent new feature), I was extremely
hooked, considering the same process in RoR was a few days of effort. I
also felt the philosophy and intent of Python better aligned with my
personal inclinations. Simple, clean, big focus on backwards compatibility
both in the language and Django (a large problem that I had with Drupal).
Ruby felt much more bleeding edge, fast-paced, and 'magical'. Call me a
control freak, I like to know what my code is actually doing. Makes for
easier troubleshooting later. Python also had excellent cross-platform
support, and native support within Ubuntu/Debian/Gentoo linux, since a fair
portion of their tools are written in Python. Pip makes installing (and
version control) ridiculously easy, much easier to navigate than gem repos
or CPAN.

All that aside, the best advice I can give you is just to try each out and
figure out which one 'feels right' for you. Both have more than enough
market share as a viable career path. Given your field of study, Python may
be a better choice for you considering the immense amount of scientific
work done with Python. I've never heard of Ruby having such a reputation
(but that doesn't mean it isn't being done).

As far as Python debugging tools go, I would definitely look into PyCharm,
which has a free community edition with a built-in debugger. It handles
Django with ease, and the licensed version has extra special goodies for
Django specifically, probably worth the cost if you are serious about
developing the application you are talking about.

-James


On Fri, Aug 14, 2015 at 2:20 PM, Rotimi Ajayi-Dopemu <rodop...@gmail.com>
wrote:

> Hi all,
> I am sure this question has been beaten into the ground but hopefully I
> can get some specific insight so I don't waste time in the future. Thanks
> in advance.
>
> The question:
> I have a year to learn a new programming language for web application
> development. I will be learning concurrently with going to school so I have
> about 10 hrs a week give or take. So the question is this should I learn
> Ruby on Rails or Python/Django???
>
> Background Info about why:
> I am a student studying Cognitive Science and want to work as either a UX
> designer or a Full Stack Engineer, I am leaning towards Full Stack
> Engineering and designing more for the front end in my after hours. I don't
> have a serious girlfriend (lol) and my life is pretty simple so I know this
> is what I want to do. I am committed. I know PHP fairly well and can use
> Wordpress and Joomla for whatever. I am familiar with MVC through use of a
> popular PHP framework called Codeigniter. Oh yeah, I used C++ pretty
> heavily about 10 years ago building Windows Applications...and loved it.
>
> What I will be using it for:
> After I graduate in a year and after learning the language I decide on I
> plan to develop a full blown web application. I don't know if this is too
> ambitious but all I'm willing to say now is it is like Pintrest but not a
> clone. I have fully developed the concept for a long time now and will have
> the features down pat by then. My goal is to invest my time on a prototype
> and release it, then hopefully get with a team or even investors if it
> works and develop it more. If it doesn't work out then Plan B is to use my
> skill-set in a full time position with a company in a tech hub somewhere in
> the US. Plan B might turn into Plan A in a year depending on my money
> situation.
>
> So there are three aspects to this question: Should I learn Django/Python
> or Ruby on Rails? is Plan A(the web app) feasible with just me and
> Django/Python? How does Python fair in the work market?
>
> I know all this may seem like a lot to ask but this is really just a test
> of this forums activity. I have been pretty avid on staying with PHP or
> maybe going back to C++ because this HTML/CSS situation I usually work with
> these days tends to get on my nerves.
>
> Last thing to add for this thread (I swear) is: one thing that really irks
> me about web development is the lack of real debugging tools that work
> flawlessly. Maybe it is just I haven't learned them yet but I know in PHP
> you are stuck with using Xdebug through your browser (although I just found
> a new debugger that only works in recent versions of PHP) so if anyone
> could just give a 1+ to integrated debugging with Python Django that would
> be great.
>
> Thanks again if you read this far.
> Feel free to contact me if you have a similar web application in the
> works, I have no doubt there probably is.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/4c01a2c3-50f1-4123-b0b2-4197222d6595%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/4c01a2c3-50f1-4123-b0b2-4197222d6595%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciVo8OLGHnD2qFHaE_yjcYiCqQ81nA_G%2BKvDwAr6zkkJiQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to