What do you think of uniGUI, the framework for creating web applications and win32 applications at the same time? [closed] - delphi

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I've just been redirected by a firend on the uniGUI website. In a previous question I asked about a comparison between Raudus and ExtPascal.
Now this unigui seems to be an alternative to Raudus, that moreover has the advantage of allowing you to compile the win32 exe at the same time with the same source code (of course if you limit yourself to use only uniGUI approved UI components).
I think this is amazing, even if this idea at a first sight willnot make happy all the web apps purists, but in my opionion having this kind of tool is great.
There are many (even small) applications, that can benefit for this code once, get a double UI.
Anyway which are your feelings about this? Do you think it has a future?
ADDITIONAL NOTE: In order not to start a general discussion please try to answer by mentioniong uniGUI specifically, not only a general answer. Thanks.

I started developing uniGUI (or whatever name it may adopt in future) around two years ago. Since then it has evolved a lot. Initial version was based on VCL for the Web. With addition of ExtPascal and Ext JS it has become a very advanced tool to develop Web apps based on Delphi.
uniGUI simply defines itself as a Web Application Development framework. The concept of Web Application has been controversial since its first inception. Some people claim that Web is stateless but applications are statefull, one should not mix these two. However, nowadays with an increasing demand for web applications such notions only remain as a philosophical point of view.
More and more people want to access their desktop apps from the internet. Companies want their local accounting software to be accessible to other branches. A security company wants a web gateway for their access control software. These are all examples for the increasing demand for web apps.
We can consider uniGUI as an abstraction layer for Delphi VCL controls which extends them to the Web. Like all other abstraction layers it helps developer to focus on application logic rather than the development tool itself. It tries to fully integrate the RAD approach into Delphi based Web development.
Dual nature of uniGUI is simply a plus. I'm referring to its ability to deploy same application to both web and desktop using same codebase. This feature maybe useful for some developers but useless for others and it can be completely ignored by those who focus on Web development only.
As for the scalability, the best target for uniGUI and other similar tools seems to be the intranet where the number of clients are predictable and connection speed is a non-issue.
That said, nothing prevents developers from developing web apps that target the internet. At end it is all Ext JS on the client side and Delphi event handlers on the server side. It all depends on how smart you design your app and how efficient you manage your resources. If each of your sessions consumes 10 MB of memory then you're likely to run out of memory very soon.
In conclusion, this framework will have a group of users which will find it best for their needs. There is no black or white here only big gray areas. Like any other tool it depends on the company, the particular project and the available deployment options to see if it is the right tool for you or not.

Web applications are very different from GUI ones. Mixing two approaches for something
more serious then simple form or several buttons I think is just wrong.

I think that the UniGUI idea is a great one. But I think that Embarcadero is the one that should offer that as one more option for developers instead of a independent one. Delphi developers always wanted an easy way to create web applications, and sincerely WebBroker is very poor.

Anyway which are your feelings about this? Do you think it has a future?
The general idea definitely has a future, if only in the PT Barnum sense. This particular implementation doesn't seem to be anything special - there's nothing in it that grabs me as being a great solution to any of the problems I currently have to deal with. But then, I see thick client apps, especially traditional Delphi 2 tier apps, as quite different from web apps.
I'd be more interested if uniGUI worked the other way, and provided a solid MVC framework for Delphi, then extended that to the web. That way you could more easily have your data + business logic + GUI in three connected pieces, rather than the traditional Delphi/RAD problem that business logic gets all tangled up in the GUI, then the web application is a pain to develop because the layers "have to be" separated. This smells like "solving" that problem by letting you leave the business logic mixed into the GUI when you move to the web.

Related

Silverlight or MVC for Web Development [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I was just wondering about the opinions out there. What do you think promotes faster development times for a web application? Silverlight or .Net MVC?
And could Silverlight be a replacement for a true http web application?
Feel free to rant or give as much details as necessary.
could Silverlight be a true replacement for a true http web application?
No. Just as Flash can't, Silverlight and any other presentation viewing plugin will never be an acceptable replacement for good HTML.
I can cite a million reasons but here are the highlights:
Plugin-availability (especially on other platforms, phones, etc)
Performance is awful compared to HTML
Maintenance is a PITA, requires complete recompilation and uploading. You just edit what you need in HTML.
Accessibility!
I can't comment on speed but I frankly think it's irrelevant. You shouldn't use Silverlight/Flash/whatever to build a full website.
What technology to use depends completely of your requirements. You should start there.
As far as Silverlight (or Flash for that matter) goes, you will be creating a web application but not a web site.
Disadvantages?
People will be reluctant to install Flash or Silverlight plugin.
Flash/Silverlight sites will not be visible to search engines.
People won't be able to bookmark them and share the links.
Back/Forward/Reload browser buttons will not work
No/partial support in Mac world
Advantages?
Rich UI
My personal opinion is that you shouldn't use Flash/Silverlight except in cases where raw HTML/CSS won't work. And HTML 5 with CSS 3 are quite powerful. Web is full of pointless Flash sites which do nothing interactive just present a few static pieces of information. It could easily be done with ordinary pages. Somebody thought a Flash site was cool, but it isn't. It's heavy, slow and inaccessible.
Silverlight and MVC/ASP.NET both have there places:
MVC/ASP.NET are great for things things like blogs informational web sites, online stores
basically when your application needs to be spidered by search engines.
For online applications like Turbo Tax or Sales Force basically applications that at one time where on your desktop but for many reasons have been moved to the web I would use Silverlight or Flex.
With the above in mind:
Having worked with MVC/ASP.NET and Silverlight extensively I find Silverlight development much faster once you get the hang of xaml.
This is repeated many times, but I never seen anyone mention such disatvantage of the "modern" technologies like Flash/Silverlight as lack of years of browser/usability support:
you generally can't copy text of arbitrary item
you don't have things like Stylish, AdBlock, or Greasemonkey at your fingertips to improve what "designers" think is good for you
browsers doesn't know about your forms and can't provide autocompletion or save values after crash/reload
accessibility solutions like zoom methods or third-party formatters do not work
And I can continue. From users prospective, Flash/Silverlight is a nightmare, stone-age, while HTML-based applications have all the modern usability stuff available for users.
Yes, there're development problems (nothing beats FireBug even in HTML area) but what matters is, please, be kind to your users. Even corporate people are people.
IMO - I look at Silverlight/Flash/HTML forming the "View" part of the website/web application.
If you can structure you site/application code properly, the View should be interchangeable and/or can support multiple formats of the view for the end user/device to choose from.
IMO - it is very hard to predict the user usage patterns of the site/application and there might be devices which need to be supported in the future. So, might as well develop applications which are structured in a way to help make that move a lot simpler in the future, in which case the rendering of the view can be anything you want to meet your current goals...
HTH.
A previous answer makes the statement "You just edit what you need in HTML". While this is true for a simple static web site. It is not true for a web 'application' as is stated in the OP. The functionality is not in the HTML. You might have some functionality in Javascript that yhou could edit this way, but doing edit-in-production of Javascript is NOT recommended.
For all but the simplest static web sites I would recommend that any change to a production web site or application should be managed in an source versioning system, tested, and reviewed before deploying to production. In such an environment adding a compile step is trivial.
I would never recommend Silverlight to replace what could be done in a static website. I cannot imagine that anyone would. HTML is designed for static content. Silverlight is not.
To address the performance issue: the statement that Silverlight performance is awful is just wrong. Certainly, it takes longer to load a Silverlight application than to load a web page, but once loaded the user interaction of a well designed Silverlight application is much faster than continually rendering complete web pages.
The lack of portability for Silverlight has been significanly overstated in some of the responses here. Silverlight has the same capability on MAC that it does on PC. Linux availability via Moonlight is not far behind. MonoTouch for the iPhone, soon to come Mono support for the Android and the Silverlight programming environment for the upcoming Windows Phone 7 also bring a lot of possibilities for mobile environments.
Having said all of that, I would not use Silverlight to develop many types of web applications. I would be reluctant to do a consumer oriented e-commerce site using Silverlight (or Flash) because of the previously mentioned reluctance by some to download the runtime. But for the SaaS application that I am currently doing that is not an issue, the vast majority of users a more than willing to do a small download to get the far richer user interface.
It is possible to achieve some of the same improved user interface 'richness' by applying Ajax/JavaScript, but I find the Silverlight development experience to be more productive. One thing to consider is generally an Ajax/Javascript application while giving a better user experience than traditional web application will still look and feel like a web application and a Silverlight application will feel more like a traditional windows application. This may or may not be a factor in your decision.
I find it a bit disappointing that a repsonse that misses the point of the OP and does not seem to understand the difference between a web application and a web site has gotten more up votes than some answers that were on point.
The response by Anthony is spot on.

Raudus vs ExtPascal: Delphi web developement alternatives that use ExtJS [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Delphi developers has several tools (several alternatives to ASP.NET) for building web applications.
While No.1 framework is Intraweb, there is a lot of interest around ExtJS, that has 2 incarnations:
1) the opensource ExtPascal
2) the closedsource Raudus
Now the products are different, Raudus never supports the latest ExtJS version (while ExtPascal does because as far as I read it "almost automatically updates itself to the latest ExJS version"), Raudus "seems" much RAD (much similar to Intraweb from the RAD point of view).
Anyway why chose one or the other?
Why Raudus (since it is free) cannot become Open Source? Or does Raudus use ExtPascal behind the scenes?
Comment: uniGUI seems at first sight to combine the good part of Raudus (the RAD part) and ExtPascal (being based on extPascal).
Talking about Raudus, I'd be careful! You can download it for free, indeed. I was about to start using it when I realized there's no single word on its usage license. There's no license in fact, or I was unable to find it under "standard" locations (website? no. installer? no. README / LICENSE file? no.)
Thus I'd be careful with using library which doesn't specify it's license. Especially if you're about to start some project which will use it intensely - just imagine what happens when it comes out that you need to pay big amount of money for using it ...
Why use any of them? RAD in the form of Intraweb and tools like it, is not appropriate for web programing. It doens't separate the GUI from bussines logic well. In other words there is no true MVC approach there. Maybe ExtPascal is different here, but the point is elsewhere.
ExtJS is a very well written RAI JS library. It feels almost like putting blocks of code together in a very object oriented way. You can easily build whole GUI with ExtJS without any backend support. This way your whole GUI is in javascript files and no backend is needed. Backend only processes the ajax call and provides data / processes data. This way you have a clear separation of concerns.
This can be easily done without any frameworks. Yes framework would come in handy but it would have to be done in a ASP.NET MVC or Ruby on Rails way. No RAD and no visual designers. New web developers often make those mistakes. But if you program for the web long enough you come to appreciate the separation of GUI and logic and the simplicity of HTML. Web programming is different from desktop programming at least to a degree.
To answer your question. From what I have seen, I like ExtPascal better. It seems a purer web development tool than Raudus. But I admit I have only seen both from the surface and from demo videos, so I cannot judge, only speculate :)
The Raudus developer put up a new blog post in late October and claims, well I'll let you read the snippet for yourself:
"Raudus license is freeware as written in license.txt. You CAN use Raudus in commercial projects. Raudus sources are not available yet."
Edit: There is a license statement at the bottom of the http://www.raudus.com/ page.
"License
Raudus is freeware. You can freely use Raudus for commercial purposes."
As to contacting the author, try this from the same page: E-mail: igor#klopov.com
After using Raudus for a few months I decided to post my own answer.
The framework is improving, Sencha touch support now it is not complete but sufficient to create usable web applications optimized for mobile devices.
RFE, a new front end, not based on Sencha Touch is under developement and in next Raudus release (that should be out soon) there will be a usable preview of the new controls set.
So while ExtPascal seems frozen, Raudus is in progress and promising.
Update: I stopped using Raudus, it dropped ExtJs support and now it ships with own controls, that will never match the beauty and richness of extjs components. I am now going for IW + cgdevtools components that are Jquery UI for IW.
user193655 --> Depending on what you do be carefull with both approaches. I am really a big fan on Delphi or Freepascal/Lazarus - I am not very certain if the approach of bringing 3GL bindings to the Javascript stuff is wise.
MVC - depending on what you do - in PHP you have the Yii Framwork or Prado. Maybe the second has some ideas from .net built in which are very easy to understand by Delphi developers. PRADO is an event driven approach while YII Framework is absolutely cool and unix like.
After using Raudus it seems that it is not practical for large scale of applications.
According to their documentation and I have also sampled, it serializes all client request into single main thread. However it process client request and response generation part in multi-threaded enviornment.
But main thread issue is quite important as it directly impact the response time if one action is taking more time in the main thread, others will keep waiting.
Any suggestions to resolve this issue?
Raudus:
Relies upon Delphi, in which:
Is verbose;
Relies upon Microsoft Windows;
High-cost to adapt to or to maintain;
Quote from raudus.com: "Raudus is freeware. You can freely use Raudus for commercial purposes. Raudus sources are not available yet." — This, to me, will be never a license. On the homepage, simply there is no documentation about Terms of Service or something like that. Hence I won't deal with their services.

What framework would allow for the largest coverage of freelance developers in the media/digital marketing sector [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
This question is not about which is the best, it is about which makes the most business sense to use as a company's platform of choice for ongoing freelance development.
I'm currently trying to decide what framework to move my company in regarding frameworks for web application work.
Options are
ASP.NET MVC
Django
CakePHP/Symfony etc..
Struts
Pearl on Rails
Please feel free to add more to the discussion.
I currently work in ASP.NET MVC in my Spare time, and find it incredibly enjoyable to work with. It is my first experince with an MVC framework for the web, so I can't talk on the others.
The reason for not pushing this at the company is that I feel that there are not many developers in the Media/Marketing world who would work with this, so it may be hard to extend the team, or at least cost more.
I would like to move into learning and pushing Django, partly to learn python, partly to feel a bit cooler (all my geeky friends use Java/Python/c++). Microsoft is the dark side to most company's I work with (Marketing/Media focused). But again I'm worried about developers in this sector.
PHP seems like the natural choice, but I'm scared by the sheer amount of possible frameworks, and also that the quality of developer may be lower. I know there are great php developers out there, but how many of them know multiple frameworks? Are they similar enough that anyone decent at php can pick them up?
Just put struts in the list as an option, but personally I live with a Java developer, and considering my experience with c#, I'm just not that interested in learning Java (selfish personal geeky reasons)
Final option was a joke
http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml
As you said for the media/digital marketing sector php is the way to go.
I love .Net (it would be my first choice if the target market wasn't a factor).
I would really look for good well rounded developers regardless of their tech or market as opposed to ones with "media/digital marketing sector" experience.
It is possible to find good/experienced/reliable developers with knowledge of multiple frameworks. If this is a requirement, it is of course possible to vet candidates accordingly.
Given that you're referring to freelance development, it would probably make sense to add the dimension of "where the developer is based" into your thinking, as dealing with someone who's a stone throw's away compared to dealing with someone abroad or another city may affect how you work together. This means that where you are based also affects your choice: if you're based in a small town, there will be less quality canditates close to you with suitable skill sets.
I'm currently learning Symfony for myself, and work as a freelance advisor/product developer for a site that's built with CakePHP. Although an experienced PHP developer should be able to make the leap from one of the above to the other quite quickly, there's a fair amount of framework-specific intricacies that can only really be learnt by coming across the problem and then searching for the solution, or by being guided by someone who already knows. Symfony is considered to have good documentation, but I feel that there's a quite a lot in it that's also not in the documentation and that can really only be learnt by doing it.
I also worked for a company quite recently who used Symfony, hired high-quality PHP developers only, and if I recall correctly, it was about a month or two for new guys to get familiar with the code and the workings of Symfony, and start becoming properly productive.
Hope that helps.
In my (heavily biased) opinion, Django is gaining some traction in this sector. Off the top of my head I can think of a number of high-profile news organizations that are making significant use of Django and I've seen reports of organizations utilizing Django for putting up special one-off sites quickly for unique coverage of special events or circumstances. I know firsthand that PBS and National Geographic also use Django extensively for their web properties and I understand Discovey Channel does as well. There is a nice testimonial about how Michael Moore's site was rebuilt quickly using Django: http://blog.concentricsky.com/2009/10/michaelmoore/. I'm not sure if MSNBC has begun utilizing Django internally, but they did acquire Everyblock.
A few others I'm aware of that use Django heavily:
Mahalo
NASA
University of Texas
I've also seen that Django is being used by startups outside the media sector so I wouldn't say it is specialized toward a particular business sector. There are a lot of organizations out there that have been sort of silently using Python internally over the years and so Django is quickly becoming a natural option for web-based services. Python actually has decent roots in the scientific communities, financial sector, and I've spoken with a number of people in the entertainment industry who use Python in their digital effects / post production pipelines.
Maybe not the most riveting content overall, but there is some good info in here: http://djangocon.blip.tv/file/3041158
Look at your clients. Frameworks are just tools, you will have to go with the tool that suits the particular job. This also means your choice to dive into a framework will choose your future clients.
Many SMB shops need PHP because that it is the easiest to host and is interoperable on many layers of "platform" (not just OS, but also supports all DBs etc.)
ASP.NET MVC: I heard a lot of awesomeness about it, I like C# as well. But I can't afford to go only with the options Microsoft provides (database for example) and Microsoft products only really support they own stuff.
Django: Expected to gain huge momentum, but I'll wait until the language itself (syntax) becomes stable.
CakePHP/Symfony: CakePHP is very easy to pick up and is a good choice if it fits all the requirements.
Struts: Quite heavy, I would learn Spring (MVC) instead.
Pearl on Rails: Haven't really used/seen it, so no idea.
You could also consider to learn a framework that is radically different from you current knowledge.
So I love Symfony. It does all I need for a Framework to work fast and clean.
The structure and the architecture is pre-defined so everybody knows where to put stuff, so you can easily work together with a whole bunch of developers.
I would never chose CakePHP over Symfony, because if you have to make changes to a model, you can never again generate code after the development has started.
CakePHP just overwrites everything.
I sure lost all my code a few times. Really annoying.
Symfony just extends the generated code and that is where you develop.
Here you find a good discussion about CodeIgniter (with which I develop at the moment, and it is no MVC and PHP4-based) and Symfony: codeigniter-vs-symfony
The learning curve is a bit steeper for Symfony, but it has enough complexity for all situations I ever encountered.
My next project will again base on Symfony 1.4. And if you can wait, there will soon be Symfony 2.0
ASP.NET MVC, but only if you can use both a frontend and a backend developer for each project. It'll probably be harder to find developers with both competences and you might have to push .net-developers a bit to get them to use MVC.

Which modern web frameworks are popular in a corporate setting? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 months ago.
Improve this question
My company is looking to move their software to an open source framework. Their first thought was J2EE. I know that Django and Rails are popular for recreational development, but not sure about them in a corporate setting.
I was looking to compile a list of possible web frameworks to consider. Unfortunately I am not able to release our requirements to the public. Also I would like to know if you have seen/used different frameworks in a corporate environment.
Thanks
I believe the more important question is what talents you got. If you have a primarily Java team, and you want to completely move to Ruby or Python, it's gonna be hard, if not impossible.
When deciding if X language/framework is good for a business, you have to consider opinions from your internal technical staff first. That normally sets you in a place with limited choices. Unless you are with a very small but highly talented/motivated team or planning to build a team with new hires.
Not sure what you mean by a corporate use, but we're using Django at a large media company for the websites of nearly 40 radio stations.
Another vote for Django. I'm not sure if the Washington Post or LA Times count as "corporate" but they have a lot more demands (both daily hits and time-to-new-feature) than your average "corporate" environment.
Struts, Stripes, Wicket, Spring MVC. I use Grails and love it.
You can go to Rails too. We use Rails successfully in a number of serious applications.
If you are just looking to save money from software, you can go to any J2EE frameworks out there. If you looking for some fun and rapid development, try Rails.
It all depends on the type of the project and the talent you have.
I use django in a real-time professional environment.
it's solid, and blazing fast (django on nginx/fastcgi, and soon couchdb too!)
We're using sinatra (ruby) for frontend to our main internal application. Simple, stable and flexible.
Struts2, Spring MVC, Stripes, Wicket, Grails, JSF, Seam, GWT, Flex, etc (Stripes and Grails being my favorite).
Matt Raible did interesting comparisons of (most of) them in this presentation which is an updated version of this old one.
Another interesting reading might be the What is the most commonly used Java web framework? question here on SO.
IMO, whatever you choose doesn't matter that much, the presentation layer will still be throw away code.
Any framework that keeps you away from the imperative languages (e.g. Java, C#, JSP with Java etc.) is better. Declarative/Functional/Data Flow languages (e.g. Ruby, XSLT, Python, etc.) result in solid implementations that save you support/enhancement $$$.
It sounds like the powers that be are comfortable with Java, but do yourself a favor and avoid J2EE. Go grab Restlet and Groovy, write a nice Rest back-end that not only serves as a programmatic API for your project, but will work nicely with any Ajax/Javascript library you choose to implement a UI in.
We are currently using Django and the web site is driving a lot of business to the company as well as growing by double digits since last year. It doesn't matter what kind of technology the corporation is using but what their business model is. What are you currently using in-house? It will make more sense to use a web framework related to your in-house code, knowledge and man power.
If nobody knows Rails or Django, you have to factor in the learning curve during the migration. It should only be a couple of weeks depending on the savviness of your developers. Then again if everyone hates or do not enjoy working with the in-house technology, trying a new one might be worth it.
"I know that Django and Rails are popular for recreational development (...)"
Rails:
http://basecamphq.com
http://highrisehq.com
Django:
http://www.lawrence.com/
http://www.everyblock.com/
They have high traffic and content-heavy services. I wouldn't call those guys business as "recreational development".

Web development for a Computer Scientist [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have BS in Computer Science, and thus have experience developing software that runs at the command line or with a basic GUI. However, I have no experience making real, functional, websites. It has become apparent to me that I need to expand my skills to encompass web development. I have been using Ruby to develop applications, but I am aware that it is quite popular for web development. I want to use my skills as a programmer to assist me in developing a personal website for a band.
I have experience with HTML, but very little with CSS. I want to leverage my skills with programming languages to create a website containing pictures, audio clips, a dynamic calendar, a scheduling request tool, and other features common to band websites.
What kind of resources are available for a competent desktop programmer to learn the entire process for developing a website? Is it best to use free CSS templates and WordPress as a foundation for my site or make it from scratch? Should I use GUI tools or write it all in Vim/Emacs? Is Ruby on Rails sufficient for my personal website, or should I consider a more mature development platform?
My main goal for this project is to come up to speed on current web design technology, and actually understand the entire process for building a website.
I think one really important thing to understand in web development is HTTP. HTML and CSS are important, but I think it's more critical to understand the stateless nature of the web, and how each of the HTTP verbs work, and what they can/can't do.
http://www.freeprogrammingresources.com/http.html
A good tool for seeing how HTTP works is Fiddler.
If it's as much a learning exercise as anything then take an iterative approach. Build revise. Build revise. My (very) rough guideline below:
Client
Start with the structure of a website and concentrate on the client.
Use notepad and build a bunch of static pages for your band. i.e. Hand code initially. Try to build all your pages with CSS. No table markup. Then play around with some Javascript to bring things to life. (Navigational menu\ Calendar selections\etc). Learn about how to import and link to Javascript and CSS files.... and how these files are treated re:caching etc.
Try to learn up to the limits of what you can do on the client (generally). Factor in the nuances of 3-4 browsers (Firefox/IE6/IE8/Chrome) re:DOM and client side eventing.
Server
Then start looking for what you might want to change across pages/sessions. i.e. what needs to be manipulated server side. And pick a server side technology.
Start with basic post-back processing. Forget databases at this point. Learn how your framework of choice maintains state..... not just the name of the technology but the real nuts and bolts of it. One of your single greatest assets as a web developer is understanding the state model(s) of the technology you're using.
Then go for a deep dive on the web server technology of choice (and in general). Understand the full request pipeline from client to server and back. This will teach you forms, http and its verbs, web server, filters and modules, server to framework hand off, page and control life cycles, back to the client.
Now start working on dynamic content injection and the like. How to make and use reusable components in your web pages.
Databases, caching, performance and diagnostics.
Then get into into all the fun stuff like ajax, etc. Replace your javascript with jQuery, etc.
Then you got the whole Webservices\XML\JSON\etc side of things to discover.
Resources
Well the web obviously. For client side stuff, going to the sites of companies who make third party web controls can be quite interesting. Asking how the hell they did that? Viewsource is your friend. Look at how they structure and build their pages. Pick a couple of good web designer sites, and you find a plethora of rants about browser wars etc that will give you good (under the hood) info.
Once you hit server side, I'd go for white paper type learning from your vendor of choice for your technologies.i.e. webservers/frameworks/etc. Again find a 3rd party howto/evangelist site (I used to use a lot of "4 guys from Rolla" for example) that will demonstrate how to do various things. Language learning is ongoing. Basically just do the best you can till you find a better way.... and always be on the lookout for a better way.
You really need to understand html, forms and css to get anywhere. I say forms as this will give you the round trip needed to understanding the stateless nature of web dev.
To further labour the point, I have interviewed many people who think you can only have one form on a page and can only have one submit button per form. This is all down to a lack of foundation knowledge.
So for that I'd recommend starting with htmldog.com.
After that, a lot of web development is done with frameworks. Gone are the days where you do it yourself (well mostly) but my above point still stands. You do need to be able to peep under the hood with some confidence.
I've been doing web development for 12 years and started out with Perl on Solaris and Linux. Since then I've also done Java and more recently ASP.NET. However, I'm slowly falling for Django in my private projects.
What I've found over the years is that the inherent problems - cookies, javascript, presentation, state, authentication are all the same but just handled differently. So ultimately its down to you and your language preference. Plus a little of enlightened self interest when it comes to potential employment.
Programming aside, you should also become familiar with web servers (Apache and IIS spring to mind), Http codes and headers, Mime types and encoding and FTP. As well as Javascript (mentioned already), plugins, browser platforms and good development practises such as using Firebug, Fiddler and so on. It also wouldn't hurt to have a good idea of the image formats available, image optimisation, CSS sprites, content compression, caching and the like.
All depends on where you want to start!
For a newbie, I'd pick Django and (obviously) Python. Good, clean language with cheap startup options, low cost IDEs (ie free) and hosting your sites is very affordable.
But that's just a subjective opinion.
If your goal is to
My main goal for this project is to
come up to speed on current web design
technology, and actually understand
the entire process for building a
website.
Then start from scratch in Ruby, PHP, Java, ASP.NET, etc...
When you run into a design problem or just want to know how others have approached something, then look at the frameworks.
Once your up to speed, and your website is starting to grow, then segway into a framework, to get up to speed on the frameworks.
I agree with John on this one.
As you know from your own experience in pursuing your BSc, understanding the basics of any language is what makes you even more capable in expanding that knowledge or specializing.
With that in mind, it would be best to understand the basics of HTML and CSS.
Understanding the syntax and overall language will help in the future when you want to pursue large projects using frameworks like Django and Rails. The basics will also especially help with tweaking CMS' like Wordpress to be more customizable to your needs.
One thing in particular that I'd like to mention is that web programming, like many other forms of programming has its own special structure and "proper" way of doing things.http://www.w3.org is a great way to ensure that your work is passing general web design standards, most sites don't follow this because it is tedious, but from a learning perspective it ensures that you get a nice strong foundation.
www.w3schools.com is also a great resource for detailed help on web programming. Lastly, I like colourful code, so I like using basic text editors such as notepad++ or notepad2 or gedit to do my web coding. GUIs like dreamweaver may tend to fill up your code with extra junk and spaces, so I don't recommend them, but they are still great tools.
Don't bother with Rails yet -- write CGI scripts in Ruby. It will be very similar to what you have done for class.
After you have about thirty of those under your belt, you'll know what you want out of a web framework.
I'm a Computer Scientist and a web programmer and I would suggest you learn both HTTP and CGI:
CGI Made Really Easy
HTTP Made Really Easy
As the titles of the above tutorials claim, they made the concepts "really easy" for me.
Once you've got CGI and HTTP down pat, I'd suggest checking out following sites that provide a wealth of articles and references for web programming:
webmonkey
w3schools
Mozilla Developer Center
Assuming you want to concentrate on writing web apps, then Perl, PHP, Python and Ruby are all fine choices (I myself use Perl predominantly) and I'd suggest doing some research into the popular web frameworks available for each language.
Most importantly, pick something simple as your first web app, e.g. a form and a page that shows the results of submitting that form. Some good examples (using Perl's CGI module) can be found here:
CGI.pm - a Perl5 CGI Library -- see the first set of links on this page.
When you want to start writing web apps that use a database, read up on SQL and popular libraries/modules in your chosen language for database manipulation, especially ORM (Object-Relational-Mapping) interfaces that allow you to deal with records in an Object-Oriented fashion.
Good luck with it! Being a web programmer is fun because your audience is teh intarwebz! :)
If you are starting from scratch as per John MacIntyre's suggestion, you may lean towards PHP. With all of its shortcomings, it does have one really good user manual. It is also easy to get started with and is installed on pretty much every host and goes well with Apache.
Also, w3 schools is good to begin learning about CSS and XHTML but don't forget to check out the specs at W3C.
Also, please read this Stack Overflow question & answers.
For what you're describing, Rails or Django might be slight overkill but it wouldn't hurt to learn them. Django, in particular, might be good because of the notion of a project containing multiple apps (e.g. calendar).
Whether you use a framework or write everything yourself, though, you'll need to know HTML and CSS. CSS is extremely simple if you have a BS in CS...you could read a tutorial and know it in five minutes.

Resources