#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 21, 2013 11:18:11 GMT -8
So I've never really been big into web development other than writing scripts here on Proboards or a few other sites from time to time; I've always been a C++/Java guy working on games and random applications. However, for my final project at Uni I have to develop a fairly large scale application using the Ruby on Rails framework. It will be an upload site for the Computer Science department (if it's good enough haha) which should have functionality such as drag and drop uploads of student assignments that should be automatically compiled and run (in a sandboxed environment, of course), no matter what language it is. It should have a intuitive gradebook, visual attendance, live chat, class and assignment pages, group project pages and much more...I'm basically going for dropbox functionality for the upload part except it will actually compile and run any software automatically.
We had the option of using either Ruby on Rails or node.js, but I chose Rails due to the fact that it is a mature and proven technology (Twitter (a little), Hulu, GitHub etc.), it is completely open source (node.js is too), and it has many packages that the Ruby community calls "gems" for almost everything which node.js is currently lacking in. Since we have very limited time to write this application, Rails makes more sense since it's designed for fast development, whereas more would have to be written from scratch in node.js.
But I'm curious what you guys use and prefer. If we could have chosen anything, I would have probably gone with Python/Django, although now that I have been using Ruby quite a bit, it's starting to grow on me. It had some serious performance issues in the past, but I've come to learn that it's all about using the right architecture and making it possible to scale. I'd like to admit that I had absolutely no idea as to what I was talking about when I said php sucked because it was slow, because it really comes down to the right architecture. Sites like Facebook and Twitter had to move on from php and ruby (respectively) because of their insane amount of traffic, but for normal websites these languages are fine. I just don't like php because of how messy it is, and partly because of how many bad coders it has. Plus, its OO implementation sucks in my opinion, but you know what, a ridiculous amount of sites use php and it works. It's a proven technology so I would use it if I needed to.
Anyway, what are your language preferences, and what frameworks within those languages do you use? PHP with CakePHP? Python with Django? Ruby with Rails? Scala with Lift? Clojure with Compojure? node.js? And why do you use them? What are their pros and cons that you have discovered from using them?
You can also say what server or combination of servers you are using such as Apache, nginx etc.
|
|
#00AF33
Bark Different.
102833
0
1
Feb 12, 2023 16:57:46 GMT -8
RedBassett
I'm a Marxist/Lennonist of the Groucho/John variety.
15,405
April 2007
applecomputer
RedBassett's Mini-Profile
|
Post by RedBassett on Feb 21, 2013 11:41:45 GMT -8
I tend to use PHP for rapid development. I can write some Python and Java, and I have started (and want to continue) to learn Ruby and Node.js. PHP, while far from perfect, is just a much faster environment for me, mostly due to experience. Apparently every programmer I know hates PHP and doesn't hesitate to tell me so. I know at least one person who subscribes to the "Python is perfect and solves all problems and can never be wrong" philosophy. That is probably the primary reason I dislike Python. Currently, I use a pretty basic PHP and Apache environment. I am one of three sysadmins for a system that we may be considering moving away from Apache on (to nginx, I think?). We'll see if I stay an Apache fan As for languages, I am happy with PHP, but if I ever get my current projects up and running, I would like to consider moving them to Ruby/Python?node.js.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 21, 2013 12:48:39 GMT -8
I tend to use PHP for rapid development. I can write some Python and Java, and I have started (and want to continue) to learn Ruby and Node.js. PHP, while far from perfect, is just a much faster environment for me, mostly due to experience. Apparently every programmer I know hates PHP and doesn't hesitate to tell me so. I know at least one person who subscribes to the "Python is perfect and solves all problems and can never be wrong" philosophy. That is probably the primary reason I dislike Python. Currently, I use a pretty basic PHP and Apache environment. I am one of three sysadmins for a system that we may be considering moving away from Apache on (to nginx, I think?). We'll see if I stay an Apache fan As for languages, I am happy with PHP, but if I ever get my current projects up and running, I would like to consider moving them to Ruby/Python?node.js. Yeah, I can definitely understand wanting to continue to develop in what you are fastest in because it's a huge pain to have to learn a new language and framework. I doubt I ever would have touched rails unless I had to. I think the reason why PHP is so popular is because of how old it is (1995), and because of how easy it is to develop on Windows. It was the first server side language I ever touched, and I've even had to use it a few times in school. It's a very easy language to learn and use which is not the case for some other languages if it's the first time someone is learning a language. It just has some issues that annoy me. I haven't done much Python, but would like to learn more since Google uses it extensively, especially on YouTube. It is also used an insane amount on linux for scripting purposes. Ruby has been around just as long as php (1995), but Rails didn't show up until 2004 and become really popular until a few years later. Plus, Ruby was developed in Japan, and it took a long time for english documentation to appear. Also, Rails development should be done on a form of linux, even though it can be done on windows but it's not recommended. Java is a great language to know (mainly because of the JVM and not the language itself), but most web development done in Java is at the enterprise level which I got a taste of at an internship. Websphere is a popular IBM Java EE web framework that is an absolute beast, but for most sites Java is probably an overkill. I really hope that node.js keeps growing and gets better because I would love to develop in it, but I am going to wait a while before I try anything serious in it. I would highly recommend trying Ruby on Rails if you ever have time, it's actually turning out to be a really nice framework, and the Ruby language is very clean and beautiful. I still haven't done anything too advanced with it yet, though, so I can't say too much. And apache seems to be perfectly fine for many servers, but I think a lot of people have been trying servers like nginx since it appears to be better at scaling, but I'm no expert in that area. The home page of nginx said it was created to handle the C10K problem which is the issue of handling 10,000 concurrent users. Would be interesting to hear someone who knows a lot about this say a few things.
|
|
inherit
24252
0
Aug 1, 2023 15:01:24 GMT -8
coolcoolcool
When the world says, "Give up," Hope whispers, "Try it one more time."
2,148
May 2004
coolcoolcool
|
Post by coolcoolcool on Feb 21, 2013 17:11:29 GMT -8
PHP and Apache as well.
It's so user friendly. I literally walked into my job interview never writing a bit of php in my life and came up with the challenge program on the spot with nothing but a reference page in php. Everything about the language just works the way you expect it to, plus the arrays (if you can call them that) are like pornography for the programmer.
Yeah, it's obviously inefficient, but honestly we haven't ran into a project big enough that would ever require anything more intensive.
If I was ever to get into another environment, it would be because a company I worked for used that environment. At the end of the day you can toss and turn all you want about what tools you're using, but most of the time it's about what gets the job done fastest and with less of a head ache. That's what PHP delivers. I even write bash like scripts purely in PHP when we need to cron something.
That being said, I have fooled around with ruby in the past and it's a nice little language. I definitely wouldn't mind taking on a project with rails. Python kind of rubs me the wrong way for some reason, but to each their own.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 21, 2013 17:39:28 GMT -8
Arrays/Hashes are even easier in Ruby. But yeah, I completely agree that it all comes down to what is the fastest and most efficient route that will produce the most high quality product, and that depends on the circumstances. If they were requiring us to use php I'd be using php.
|
|
#00AF33
Bark Different.
102833
0
1
Feb 12, 2023 16:57:46 GMT -8
RedBassett
I'm a Marxist/Lennonist of the Groucho/John variety.
15,405
April 2007
applecomputer
RedBassett's Mini-Profile
|
Post by RedBassett on Feb 21, 2013 21:20:52 GMT -8
Python kind of rubs me the wrong way for some reason, but to each their own. I mentioned my first issue with Python above, but this is my second. Glad I'm not alone about it
|
|
inherit
70565
0
Sept 26, 2018 5:22:43 GMT -8
Marc
4,107
January 2006
cr0w
|
Post by Marc on Feb 22, 2013 13:44:36 GMT -8
I come from a PHP background, but as of early 2010 I have been using Python with Django pretty much exclusively.
I work for a company that holds web standards in high regard, and also has very strict deadlines. As such, Django is a very logical choice. Adherence to the DRY principle, clean URL design, increased security, well organized, well supported and maintained, incredible scalability and portability, and a great deal of flexibility overall.
However, with that said, I don't think Python/Django is the be-all-end-all of development; I think it unwise to make such a claim about any framework. I do, however, believe that Django is very good at what it does, and provides numerous benefits over PHP specifically. Granted, PHP can be used in a secure, organized, clean, professional manner...but it's such a hassle to do so when compared to languages and frameworks like Python, Django, and Ruby on Rails.
With regard to the Apache vs. nginx topic, I have used Apache in the past for personal projects (a home server, etc) and have no complaints with it for (relatively speaking) small or personal projects. However, when it comes to a commercial/high-traffic environment, I would give the nod to nginx ten times out of ten. As previously stated, its scalability is far above and beyond that of Apache. About 18 months ago, we duplicated our current setup on two servers -- one running Apache, one running nginx -- and ran a series of tests to see if we should consider switching to Apache. I'll have to check the analytics for exact details, but nginx blew Apache out of the water in almost every test. Again, it all depends on what you will be using the server for, but for high-traffic environments, nginx is definitely the way to go.
As for Ruby, I haven't used it a great deal, but the experiences that I have had with it have been mostly pleasant. I know that Ruby is usually a better choice than Python when it comes to complex interaction with the server/computer it's running on, but unfortunately I haven't had the time to dig into it as deeply as I'd like to.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 22, 2013 14:14:38 GMT -8
It seems like many more people use Python with Django compared to Ruby on Rails which is why I would have chosen it if we had the choice. I'm personally more concerned about marketability in regards to myself rather than how much I enjoy a language, and Python seems to be better in that aspect. But I can always learn it later if I decide to go into web development which I'm unsure about at this point. I'm actually considering using .NET as well since it has a huge market, and I really like C#/.NET. The only problem is you are married to Microsoft when you go that route, but open source solutions aren't always the greatest either...so I don't know. Guess it depends on the job at hand.
Very interesting to hear your personal experience with nginx. I have pretty much decided that is what I am going to use since the website I'm developing will have a lot of traffic.
And I'm really liking Ruby so far, but it just doesn't seem like too many people use it or care for it. Guess it will be nice to have some experience in it, though.
|
|
inherit
97216
0
Nov 26, 2024 13:53:14 GMT -8
Bennett 🚀
Formerly iPokemon.
3,622
January 2007
catattack
iPokemon's Mini-Profile
|
Post by Bennett 🚀 on Feb 23, 2013 19:57:30 GMT -8
PHP without any framework is how I roll. I haven't ever made an enterprise-grade product that requires strict standards and needs some sort of MVC structure with a framework. I would like to get into Python w/ Django, but I'm sure I'd come crawling back to PHP when I couldn't figure out how to do something in Python.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 23, 2013 20:12:45 GMT -8
I've heard CakePHP is a popular MVC PHP framework based off of Rails so it may be worth looking into that. I think it's worth learning a framework because once you get to know one it actually saves you a lot of time and allows you to make larger applications. Plus, they have already been tested and used in production applications so you know they work. You can spend more time on your application rather than the underlying tedious technical issues.
|
|
inherit
97216
0
Nov 26, 2024 13:53:14 GMT -8
Bennett 🚀
Formerly iPokemon.
3,622
January 2007
catattack
iPokemon's Mini-Profile
|
Post by Bennett 🚀 on Feb 23, 2013 20:27:26 GMT -8
I've heard CakePHP is a popular MVC PHP framework based off of Rails so it may be worth looking into that. I think it's worth learning a framework because once you get to know one it actually saves you a lot of time and allows you to make larger applications. Plus, they have already been tested and used in production applications so you know they work. You can spend more time on your application rather than the underlying tedious technical issues. It does end up being more code though, in some cases. Of course, certain things have been minimized, but it still takes around the same time to process the same code, but it's on CakePHP's end. I'll have to look around.. CodeIgniter and Symfony are supposed to be good as well. EDIT: I just read through CakePHP a little bit; it is still a modular, rapid-development framework.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 23, 2013 20:43:36 GMT -8
I've heard CakePHP is a popular MVC PHP framework based off of Rails so it may be worth looking into that. I think it's worth learning a framework because once you get to know one it actually saves you a lot of time and allows you to make larger applications. Plus, they have already been tested and used in production applications so you know they work. You can spend more time on your application rather than the underlying tedious technical issues. It does end up being more code though, in some cases. Of course, certain things have been minimized, but it still takes around the same time to process the same code, but it's on CakePHP's end. I'll have to look around.. CodeIgniter and Symfony are supposed to be good as well. EDIT: I just read through CakePHP a little bit; it is still a modular, rapid-development framework. Yeah, I guess it just depends on what you are developing. Let me know if you find anything you like.
|
|
inherit
97216
0
Nov 26, 2024 13:53:14 GMT -8
Bennett 🚀
Formerly iPokemon.
3,622
January 2007
catattack
iPokemon's Mini-Profile
|
Post by Bennett 🚀 on Feb 23, 2013 20:55:10 GMT -8
It does end up being more code though, in some cases. Of course, certain things have been minimized, but it still takes around the same time to process the same code, but it's on CakePHP's end. I'll have to look around.. CodeIgniter and Symfony are supposed to be good as well. EDIT: I just read through CakePHP a little bit; it is still a modular, rapid-development framework. Yeah, I guess it just depends on what you are developing. Let me know if you find anything you like. I'm liking CodeIgniter; thinking I'm going to use it for my current work-in-progress project for someone. I've changed the design twice now, so having a templating engine would be nice to have. Thank goodness I haven't gotten too far into the project so far; but I have had to design the design twice now lol.
|
|
inherit
50924
0
Feb 28, 2021 14:59:32 GMT -8
BFD
Last place must get awful crowded at the Nice Guy Olympics
1,708
July 2005
dwinman164
|
Post by BFD on Feb 26, 2013 10:49:57 GMT -8
I'm actually considering using .NET as well since it has a huge market, and I really like C#/.NET. The only problem is you are married to Microsoft when you go that route, but open source solutions aren't always the greatest either...so I don't know. Guess it depends on the job at hand. I was starting to think .Net wasn't welcome in this discussion... My experience with web development has been fairly limited so far, but I am getting forced into it lately. Seeing that my company is committed to the Microsoft Partner program, I am already "married" to Microsoft. The good thing is that ASP.Net is fairly easy if you have a good background in data oriented .Net development and your sites are business oriented. I know I am not building the UI elements in the best way, but none of the sites are high traffic and proper implementation of the business rules is what's critical. I probably should dabble in other languages and platforms, but at almost 20 years into a programming career is probably too late... I will say it is a shame Microsoft is already abandoning Silverlight. I've written two applications for it, one of them rather extensive (almost 1500 hours of development time) and it is an absolute pleasure to work with - both XAML and the code behind. The only real hangup is that ALL database interaction has to be service oriented...which means writing WCF service methods for every database action, no matter how insignificant.
|
|
#00AF33
14306
0
1
Sept 8, 2023 8:54:17 GMT -8
Jordan
What is truth?
11,838
October 2003
jab2
|
Post by Jordan on Feb 26, 2013 18:22:32 GMT -8
Yeah, I guess it just depends on what you are developing. Let me know if you find anything you like. I'm liking CodeIgniter; thinking I'm going to use it for my current work-in-progress project for someone. I've changed the design twice now, so having a templating engine would be nice to have. Thank goodness I haven't gotten too far into the project so far; but I have had to design the design twice now lol. Cool, it looks like a nice small and easy to use framework from the looks of it. I'm actually considering using .NET as well since it has a huge market, and I really like C#/.NET. The only problem is you are married to Microsoft when you go that route, but open source solutions aren't always the greatest either...so I don't know. Guess it depends on the job at hand. I was starting to think .Net wasn't welcome in this discussion... My experience with web development has been fairly limited so far, but I am getting forced into it lately. Seeing that my company is committed to the Microsoft Partner program, I am already "married" to Microsoft. The good thing is that ASP.Net is fairly easy if you have a good background in data oriented .Net development and your sites are business oriented. I know I am not building the UI elements in the best way, but none of the sites are high traffic and proper implementation of the business rules is what's critical. I probably should dabble in other languages and platforms, but at almost 20 years into a programming career is probably too late... I will say it is a shame Microsoft is already abandoning Silverlight. I've written two applications for it, one of them rather extensive (almost 1500 hours of development time) and it is an absolute pleasure to work with - both XAML and the code behind. The only real hangup is that ALL database interaction has to be service oriented...which means writing WCF service methods for every database action, no matter how insignificant. Ha, yeah, I forgot to mention it in my first post for some reason. If your company can afford Microsoft then I think it is a great route simply because their tool chain is awesome. When it comes to development, Microsoft delivers, but they are so dang expensive. I don't see Silverlight dying as a surprise. Flash has always dominated, and even it is dying which can be seen from its complete withdrawal from the mobile industry, and the fact that HTML5 should make it obsolete eventually. And it's never too late to try out new languages; there's a lot of really cool stuff out there now.
|
|