A good resource for an overview of web technologies - language-agnostic

I have been working on microsoft based web technologies (.net, sql server, iis) for about an year and would like to know the opensource alternatives for the above. I have heard of LAMP, Java based technologies, ruby on rails etc. Can you please point me to a place where I can find more information about these and how they match up against each other. Basically I am looking for an overview of the popular web technologies in today's world.
Thanks a lot.
Vijay

Hmmm, thats a bit difficult to do, as each language is unique in its design. I guess it's less a case of which is the best, but more which is the best to suit you. Your decision should rest on which language you feel most comfortable working in, for example like you i started off in asp.net 2.0, developing a few web apps... but made the switch over to php, the two are relatively the same, however i found php to be more accessible for the web based tasks i want it to do. Also i use macs primarily as i am a graphic designer in addition to being a web developer, so if i could develop in mac osx that was a big plus.
Perhaps you should start by outlining what environment you want to work in first, and what you'd want to be doing in it.
Then consider cost, we managed to slash the basic costs of running our sites by moving to php, simply because of the licensing differences.
Support is also a biggy, you'll find with open source stuff there is more around since it's generally a lot more accessible to more people, since theres little to no startup cost.
Finally the best way to find out whats best for you is to try them all! you don't have to be an expert in it to know whether its for you, just get a feel for the language and see if it feels flows better with you.
Hope this is of use to you :)
oh and finally, wikipedia has a little comparison thingy, its not really a great comparison but its better than nothing hey?
EDIT:
Hi Again.
I've done a bit of digging and i think i've found what your looking for!
This is a comparison chart someone made, in it details the pros/cons of php, python, perl, asp, and ruby.
Theres also this which is a comparison of some of the frameworks, they've missed quite a few off the php list, namely kohana which is a brilliant framework!
And finally heres a comparison of the three main server types, and their pros/cons.

Related

changing from classic asp to php - benefits?

i've worked with classic asp so far and want to change to php (instead of asp.net)
could someone explain the main benefits from php over asp/asp.net?
thanks
I'm not sure there is a definitive answer for this question as most of the items are going to boil down to your own style. And I have used quite a bit of both in my professional career. I just like c# better.
Both technologies are used to build web pages.
Both are highly flexible and provide you the capabilities to do whatever you want in a web site.
Both have idiosyncrasies that just take time to understand and get comfortable with.
Both have a large following and can be deployed just about anywhere.
Both have good database and security support.
You can shoot yourself just as easily with one as the other.
At the end of the day, the only real difference I can come up with is that the .Net languages are usually precompiled prior to deployment and therefore enjoy compile time checks and static code analysis.
Take a look at PHP vs ASP: An in-depth Comparison.
PHP has much more to offer than ASP which is why it powers sites like facebook and yahoo.
Main benefit of PHP is cheaper hosting.
Disclaimer: all below is IMHO.
The only benefit of php vs asp.net I see is that it runs on open source LAMP stack, so if you want to get a job in a startup php skills might be more demanded than asp.net.
Other than that, asp.net beats php on ease of implementation and flexibility. So being a biased asp.net developer, I would advise you to look into asp.net instead of php.

What web frameworks and languages have the lowest development time?

I'm trying to get a few web development ideas off the ground. Unfortunately I will be the only developer, so I'm focusing on getting a good debuggable, testable setup going that I can develop applications rapidly with.
Which languages, development styles and frameworks would you recommend for rapid development? Last time I checked RoR was the next big thing but that was a while back.
Ruby on Rails is a good choice for rapid prototyping. It's simple, clean and easily learned. PHP also offers a fairly low learning curve and a wide variety of built-in functionality for accomplishing most tasks. Both languages have their shortcomings, but on small-team projects for low to moderate traffic sites, you aren't likely to bump up against them.
The one you know best.
For people who are comfortable with Python there's also Django.
I guess it is pretty much an equivalent to Ruby on Rails (although I never used Ruby on Rails). Django's concept is to have many autonomous applications which can be used together in order to build small to large scale websites. It has great documentation, although deployment can be quite a hassle. Unfortunately it's not supported by many hosters.
PHP with Zend Framework has comparetively lower development time.
If you are familiar with C# or VB.NET and HTML then ASP.NET is also a very good option.
Just to add another, GWT (Google Web Toolkit) is an awesome option. It allows you to write all of your code in one language (more or less, you'll still need a bit of css --for the record ASP.NET allows this as well) and you can create really rich applications with all kinds of awesome javascript and ajax stuff without needing to know javascript. Their tutorials are great and personally, I think you can get off the ground really, really quickly.
I guess it matters more as to what languages you're most familiar with.
Whatever that language is, look for a good MVC framework for it.

How to choose the right web application framework?

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
Since we are ambitiously aiming to be big, scalability is important, and so are globalization features. Since we are starting out without funding, price/performance and cost of licences/hardware is important. We definitely want to bring AJAX well present in the web interface. But apart from these, there's no further criteria I can come up with.
I'm most experienced with C#/ASP.net, PHP and Java, in that order, but don't turn down other languages (Ruby, Python, Scala, etc.).
How can we determine from the jungle of frameworks the one that suits best our goal?
What other questions should we be asking ourselves?
Reference material: articles, book recommendations, websites, etc.?
For me, the most important things to consider were:
Fantastic lead developers who I trust to keep working on the project.
Googling a question brings a lot of good answers.
Most importantly, I have to like the way the code flows.
Edit: Also they have to be anal about coding standards. If there is inconsistency, I get very annoyed.
Those 3 points brought me to Symfony. It is always using the latest cutting edge features of the latest PHP version. Symfony 2.0 is using namespaces before any other framework.
Two of your points were:
i18n - there is great support for it (helps that the company behind it is French, so i18n is a first class citizen).
Scales - Yahoo Answers and Vimeo use Symfony and contribute back code. If those guys can scale Symfony to 100 million users, you can too :)
It all depends on the type of project you will be developing.
Are you building a web application or a heavy content website or something else?
You also mix up programming languages with frameworks. The frameworks for PHP that I know are: CakePHP, CodeIgnitor, Zend and Symfony. For an out-of-the-box heavy content website I would suggest Drupal or Expression Engine.
It seems you won't be developing yourself. In that case I would determine the cost and availability of programmers and how widely the framework is supported and by who it is backed. The Zend framework is backed by the guys behind PHP, while CodeIgnitor is backed by the guys behind Expression Engine. Drupal has professional support packages,...
IMHO, for something that will have a lot of users, go for a compiled language.
If you don't try it, you will not know. So, I'd say do a small project in each of the frameworks you are seriously thinking about. I would prepare myself to do a lot of testing if it's something I'll be maintaining for some years. It's better to start off on the right foor than to get half way through a project only to realize you took the wrong path. There may be some requirements that end your search. For example, your servers' OS, a framework feature, or scalability. If you lay out your software plans and requirements, you probably will have very little left to choose from - unless your project really is quite generic or simple.

Tips to get started with webdevelopment

I am very curious about what you think is the best approach for people that want to start webdevelopment. I'm now talking about people that finished their education and so want to start from scratch.
I still have questions like:
Where do you start?
What software gets involved in webdevelopment?
What tools / setup would you recommend?
Offcourse i'm interested to hear alot more then only the answers to those three questions.
I am not writing this to get a load of people react on my post, i am trully interested in knowing how much work and money it will cost a webdeveloper when starting from scratch.
I hope to get a clear view on how to approach and to maybe hear some best practices.
Well one thing's for sure, education isn't finished! There's a whole lot to learn, and the more we learn the more we seem to need to learn.
If you're really starting from having no programming background whatsoever then I think you'd be advised to take a staged approach. For example:
1). A web page with a few different text formats and pictures and colours. Here you're just learning HTML. For that any browser and a notepad editor would do, but probably a tool such as Eclipse that gives some HTML editing capability would help.
2). More adaptive HTML - stylesheets that let you change appearance without changing all the html. So that's CSS.
3). Using the above, improve your designs. There are loads of formatting tricks good web sites use and you'll need to learn those.
Note that by now we've done a lot of study and we have not actually written any programs!
4). Dynamic web pages. Now we move to the programming side, rather than just writing some HTML files write a program that delivers the HTML and in some way changes the content. Starting with something really simple such as including "today's date is ..." on the page. For that You would need to pick a server development technology such as Ruby/Rails or PHP or Java/JSP ... You'll get a lot of different advise about "best" for this.
5). Now you can start to work on accepting input from the user and doing something with it so that useful work gets done. Things such as databases start to become important.
There's a whole load more after that, JavaScript and so on. An experienced programmer can pick up this kind of stuff quite quickly, if you've never done any programming at all then you will need to be prepared to take a while before you can get to the level you probably target. I think the key is to acknowledge that a great commercial web site reflects a lot of collective wisdom and skill picked up over many years, and probably is the result of a multi-disciplinary team working together. For one person to match that is a big ask. For one person to produce something nice and useful is more practical, but still does need a lot of different skills. It's quite reasonable to specilaise in a subset of the skills. For example, good visual designers write little or no code but are highly valuable.
you need:
a browser, eg. FireFox, Internet Explorer. A webdeveloper toolbar might also be useful.
a webserver, eg. Apache, Tomcat, IIS
a programming environment, eg. Php or ASP.NET
a development tool, eg. Notepad, Notepad++, Visual Studio .NET, Eclipse
most of the times a database, eg. SQL Server, mySQL
I'd say it depends what you want them to master: the technologies only (up to which skill level ?) or the whole software engineering behind a web project
A sample and fast technologies learning tree could be:
1) HTML
2) CSS
3) HTTP
4) Server side programming (PHP ?): programming concepts, interacting with HTML/CSS, then PHP API
5) Databases (start simply with MySQL for instance) + SQL (CRUD with Joins, Subselect, Indexes, Views and Transactions)
6) Client side programming (JavaScript first then Ajax)
7) A web framework (ZEND ? cake ?) and a good IDE (lots of...)
Full-time learning those technologies requires at least 1.5 year , based on the experience I have with my students and people must be trained mainly on concrete projects.
Then people should learn software engineering (cf link text) covering at least
- software requirements
- software design
- software construction
- software testing
I think people can have useful experience in this software engineering tree in 1 year and can (should) combine learning technologies with learning software engineering.
For training someone from scratch (technologies + software engineering) I'd say a least 2 years if working on at least three 6-month projects
This answer is Microsoft specific.
For starters you'll need an editor, a (optional) database and a few starting points.
Microsoft supplies most of these for free: you can download the Visual Studio Webdeveloper 2008 Express Edition for free, this includes most of the stuff you'll need.
If you plan on developing database driven websites, and who isn't, you might want to use the free SQL Server 2008 Express Edition
When you have the tools setup it's time to download some samples and see see how they work. Again Microsoft supplies some for free. You can check out tutorials and samples at their Asp.Net site.
When you are ready for some more advanced stuff, check out ASP.NET MVC, again at Microsoft.
With these tools and examples you should be able to get started.
I just want to add that you will most likely also need Photoshop or other tool to create the graphics for your web sites.
In spite of java/.net/php,the HTML,CSS,JavaScript are the basic web development toolkit.
Get a job as a junior developer that will put you on a project that is developing a web application. I personally think it should involve one of the two most established platforms, Java or .Net. I know some will disagree, but these are good foundations to branch into other tech platforms later.
Make sure you open an IDE (e.g. Visual Studio or Eclipse) everyday and code something. If not, find a new job immediately.
Read religiously at night. Start with "Code Complete", then move on to other books.
Learn the fundamental technologies of the World Wide Web:
HTTP
HTML
CSS
JavaScript
DNS, URL's
Good luck and happy travels!!
you need:
a google chrome . This provide you some advantage like inspect option. A webdeveloper toolbar might also be useful.
2. Html, Css, JavaScript are the basic language that you should be know
a programming environment, eg. Php or ASP.NET is needed for storing data and making login type page
a Visual Code Studio is needed for coding. This provide you emmet facilities that suggest you while you are coding

What level of technical skills/expertise is required for implementing CAS SSO?

I am in a process of integrating several websites/content management tools to try out some of my ideas. Over the past couple of months, I have discovered tons of very helpful stuff, and it's great. I'm setting everything up just fine. To name a few it's: phpwebsite, moodle, livezilla, etc.
The problem is that I am doing everything myself and do lack technical knowledge.
I do have a strong programming background from way back then, which is no longer applicable. However, I seem to be managing do dig up HTML, PHP and JavaScript codes more or less OK, and things move forward pretty well.
Now it came to the need to implement SSO between a few of my systems. I like what I read about CAS, but the more I read the scarier it sounds:). I feel that I lack way too much technical expertise to be able to implement it myself. It looks like that it is not just simple logica installation and configuration as with most of the things I delt in a past two month, but kind overly complicated.
Should I risk it? What problems am I gonna face?
All the discussions I have been able to find so far are way to technical, not user friendly at all.
Please help me to build up some courage:)
Thanks,
Oleg
Looks like you're doing very well, there are many people ready to help you. Take a chance and you will learn a lot in the process.
You can at least remove the burdeon of installing the CAS server by using the cloud provider: http://www.casinthecloud.com (free servers are available for tests). For all the integrated applications, it's still up to you, but it should be in your technology using the right CAS client.
There is demo implementation here,
Hope that helps