The Joys Of Programming

trueheart78 wrote:
Lex Cayman wrote:

Mmmmmm... ASP.NET MVC + JQuery. It makes my job so easy.

We're looking at moving our website to Drupal, so I'mma dive back into PHP soon. I want a good framework. .NET hath spoiled me.

Suggestions?

Zend Framework looks pretty solid, CakePHP is decent, and CodeIgniter ain't bad itself.

Personally, I'd rather just find something other than Drupal for your website to be hosted in. Might check out Expression Engine and see how it compares (not free though, but commercially supported)

Do you not like Drupal? Do you have some nasty things to say behind its back?

Or do you mean, if I use CodeIgniter, I should use Expression Engine?

Expression Engine is a Drupal alternative I'd recommend checking out.

Python is indeed incredible. I have done Java most of my career and I'm currently using PHP on a startup I'm working on. If it were completely up to me, though, I would have done it with Python.

*shudders* at CakePHP. I hate frameworks that take the code out of my hands and auto-generate code. Black boxes can be okay, but not black boxes that also generate code and then force you to tip-toe around the code they generate. No thanks. I know you don't have to use the scaffolding aspect of Cake, but like Rails the fact that it's there makes it "best practice" as the framework is designed. Having hand-coded since 1993 I'd much rather work with a framework that gives me hooks and gets out of the way.

Ha, import antigravity actually works.

Thanks for the link, trueheart! I got halfway through the book on my day off today. It's just like learning programming in high school again, except better structured, and I'm actually learning things instead of guessing.

It's been many years since I've done any Java programming, but I recently decided to create a game for Android and have gotten into it. I must say, it's been much better than I remember. I'm sure it's a combination of the language and tools improving, as well as me becoming a better and more well-rounded programmer over time. The Android SDK is, for the most part, pretty good. My game involves me creating a Client (on the phone, duh) and a multi-threaded server, which I also wrote in Java. I can pass objects between the two very easily (I use XMPP) and though I've had many of the snags that accompany the use of an unfamiliar language, overall I've been quite happy. I see no Java love in this thread; do people use it and hate it? Personally, I like it better than C# which I've been writing a lot of lately (in ASP.NET MVC2).

I've always been hesitant to jump into Python with both feet simply because the syntax is so different; I can pick up a c-style language pretty easily but moving to an entirely different structure must require some brain rewiring. How long did it take people who usually program in c-style languages (PHP, Java, C#, etc) to transition to the way Python "does things"?

I learned Java in its infancy. As a result, I was emotionally scarred by the AWT UI it used at the time. Then I had a Nortel job where I used MS J++. So I have a built-in aversion.

baggachipz wrote:

I've always been hesitant to jump into Python with both feet simply because the syntax is so different; I can pick up a c-style language pretty easily but moving to an entirely different structure must require some brain rewiring. How long did it take people who usually program in c-style languages (PHP, Java, C#, etc) to transition to the way Python "does things"?

Honestly, not long. There are some caveats, and I'm sure more of the advanced stuff is going to be different, but once you get past semicolons and braces and understand the colons and whitespace, it's pretty simple and pretty fun.

Check the link I put in the OP and spend an hour with it, I'll be surprised if you don't enjoy it.

baggachipz wrote:

I see no Java love in this thread; do people use it and hate it?

I use Java on a day to day basis and enjoy it. For most "mainstream" languages though, all I care about is (1) the quality of the tools and (2) the quality of the libraries (i.e., how much of my job is already done). Most everything else is just quirks that are easy to learn or work around. On both counts, Java is great. Big chunks of what I'd like to do are usually done.

I've always liked the Ruby syntax better than Python, but the consensus seems to be that Python is the better language.

Regarding Java... the tools are incredible, the language is okay, and the library is kind of annoying. I don't like that I need to construct a zillion objects to do anything reasonably complex. Feature coverage is impressive though.

I wish Python had RVM and gems.

virtualenv and pip don't quite measure up.

I see no Java love in this thread; do people use it and hate it?

Part of that might potentially be the Oracle lawsuit against Google and Android. It's extremely, extremely unethical of them, and very typical for Oracle -- they do only what makes money for them, period, no matter what, and will be poor stewards for Java.

Myself, I think it's wisest to avoid that language if you can. There are a lot of choices out there. Hitching your wagon to a horse that's pulling on YOUR behalf will probably work a lot better.

baggachipz wrote:

It's been many years since I've done any Java programming, but I recently decided to create a game for Android and have gotten into it. I must say, it's been much better than I remember. I'm sure it's a combination of the language and tools improving, as well as me becoming a better and more well-rounded programmer over time. The Android SDK is, for the most part, pretty good. My game involves me creating a Client (on the phone, duh) and a multi-threaded server, which I also wrote in Java. I can pass objects between the two very easily (I use XMPP) and though I've had many of the snags that accompany the use of an unfamiliar language, overall I've been quite happy. I see no Java love in this thread; do people use it and hate it? Personally, I like it better than C# which I've been writing a lot of lately (in ASP.NET MVC2).

I use Java and quite like it, too. There are certainly faster way to develop web apps, but it's robust, seems quite fast, and has an absolutely incredible wealth of tools and libraries to build on top of.

baggachipz wrote:

I've always been hesitant to jump into Python with both feet simply because the syntax is so different; I can pick up a c-style language pretty easily but moving to an entirely different structure must require some brain rewiring. How long did it take people who usually program in c-style languages (PHP, Java, C#, etc) to transition to the way Python "does things"?

If you're already indenting things "properly" in those C-style languages, it won't take you very long at all. There may be a few times in the first week where you look at the code and scratch your head looking for the syntax error that the interpreter tells you is sitting there due to some misplaced whitespace, but apart from that, I felt comfortable with it almost immediately.

I gotta say, list comprehensions in Python are cool -- they're ways of automatically building lists of values. Very powerful stuff. Worth understanding early on.

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

Bonus_Eruptus wrote:

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

That's awesome. Thank you for that.

As far as Java goes, I'll echo what others have said. Java has an incredible library of 3rd party tools and open source technology you can call on. It's far easier to use a jar / remove a jar than it is to do the same thing in Python in my opinion. Classpathing in Java is easier than in many languages to me. Java has a rightful place as an enterprise class language because of how robust it is and how good the tools are. I can't, as much as I love Python, refactor entire classes and have those changes trickle through the entire codebase. The tools are just better.

That said, Java also is extremely formal. So I personally prefer Python these days because of its flexibility. Often in Java you want to hold a "class-like" object between certain transactions. In Python instead of creating a strictly typed class I can use an associative array which acts like a pseudo object. I love that. Malor mentioned list comprehensions. That's an incredibly powerful paradigm that in Java would require something like the the Decorator design pattern to accomplish.

So I think that's why Java doesn't get mentioned. We all know Java is powerful and has a huge library. It's just so formal that it's really frustrating to use at a certain point. Oracle owning Java isn't a huge point in their favor. The splintering of Java that will ensue when Red Hat, IBM and others decide to create their own version of Java by revving Open JDK will make things worse. In the end, though, the problem is the pendulum has swung towards using tests and better processes as opposed to strictly typed languages to solve problems.

Bonus_Eruptus wrote:

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

If IE6 was exorcised from our main client, I would pay you in donuts and gravy.

trueheart78 wrote:
Bonus_Eruptus wrote:

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

If IE6 was exorcised from our main client, I would pay you in donuts and gravy.

Your challenge is accepted.

Bonus_Eruptus wrote:
trueheart78 wrote:
Bonus_Eruptus wrote:

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

If IE6 was exorcised from our main client, I would pay you in donuts and gravy.

Your challenge is accepted.

I honestly believe the only way we'll ever see the back of IE 6 is if the likes of Apache, Tomcat et al get together and form a pact, altering their servers such that if a request comes through with an IE 6 user agent they refuse to serve it. It'd be like Challenge 25 for degenerate browser software.

FatConan wrote:
Bonus_Eruptus wrote:
trueheart78 wrote:
Bonus_Eruptus wrote:

Thought about putting these in "Post a website, entertain me", but this is a more appreciative audience for these sorts of things:

Enterprise HTML
Enterprise CSS
Enterprise JS

If IE6 was exorcised from our main client, I would pay you in donuts and gravy.

Your challenge is accepted.

I honestly believe the only way we'll ever see the back of IE 6 is if the likes of Apache, Tomcat et al get together and form a pact, altering their servers such that if a request comes through with an IE 6 user agent they refuse to serve it. It'd be like Challenge 25 for degenerate browser software.

Granted, I don't code web apps professionally where I'd have to deal with IE6, but I just use IE6NoMore and conditional comments for IE stylesheets on my sites, and, it seems to work pretty well.

That only works if your users aren't forced to use it by their company. I work with a lot of government agencies and they are stuck with it because all their internal apps are coded to it and making the changes is not a trivial thing, especially in this day and age of tight budgets. We also deal with a lot of people who are still stuck on Windows 2000 for the same reason, which cannot run any IE newer than 6.0, and you have issues with both Firefox and Chrome. We didn't get to let go of Netscape 4.8 until a year ago.

We have pretty good luck by using server-side controls wherever possible and letting the .NET Framework degrade to it gracefully. We're about to do a huge re-write and we'll have to see how much of that is possible with the newer browsers, though. I definitely don't want to end up with two versions of our codebase.

baggachipz wrote:

It's been many years since I've done any Java programming, but I recently decided to create a game for Android and have gotten into it. I must say, it's been much better than I remember. I'm sure it's a combination of the language and tools improving, as well as me becoming a better and more well-rounded programmer over time. The Android SDK is, for the most part, pretty good. My game involves me creating a Client (on the phone, duh) and a multi-threaded server, which I also wrote in Java. I can pass objects between the two very easily (I use XMPP) and though I've had many of the snags that accompany the use of an unfamiliar language, overall I've been quite happy. I see no Java love in this thread; do people use it and hate it? Personally, I like it better than C# which I've been writing a lot of lately (in ASP.NET MVC2).

I've been doing some Android Java stuff recently and I'm kind of undecided on it. There's a lot to like about it, and it is Free of course, but the dev environment and documentation don't come close to the iPhone. We've been seeing a lot of random problems once you scale beyond a small project, too. I think I'd even prefer Nokia Qt over Android at the moment.

momgamer wrote:

That only works if your users aren't forced to use it by their company. I work with a lot of government agencies and they are stuck with it because all their internal apps are coded to it and making the changes is not a trivial thing, especially in this day and age of tight budgets. We also deal with a lot of people who are still stuck on Windows 2000 for the same reason, which cannot run any IE newer than 6.0, and you have issues with both Firefox and Chrome. We didn't get to let go of Netscape 4.8 until a year ago.

We have pretty good luck by using server-side controls wherever possible and letting the .NET Framework degrade to it gracefully. We're about to do a huge re-write and we'll have to see how much of that is possible with the newer browsers, though. I definitely don't want to end up with two versions of our codebase.

This. There's a particular app that I use on an infrequent basis that exists on a Windows Server 2000 machine that I connect to via Citrix.

Learn Python The Hard Way by Zed Shaw is another good resource for the beginner.

#python on Freenode is also a good resource, as long as you're not trying to do something that the channel considers to be a bad idea. However, the channel does expect that you have at least read a tutorial. The regulars don't like answering really basic questions like "what is a tuple?", but they will happily answer questions about the design of a project.

baggachipz wrote:

It's been many years since I've done any Java programming, but I recently decided to create a game for Android and have gotten into it. I must say, it's been much better than I remember. I'm sure it's a combination of the language and tools improving, as well as me becoming a better and more well-rounded programmer over time. The Android SDK is, for the most part, pretty good. My game involves me creating a Client (on the phone, duh) and a multi-threaded server, which I also wrote in Java. I can pass objects between the two very easily (I use XMPP) and though I've had many of the snags that accompany the use of an unfamiliar language, overall I've been quite happy. I see no Java love in this thread; do people use it and hate it? Personally, I like it better than C# which I've been writing a lot of lately (in ASP.NET MVC2).

I've used Java since 1.0. It has improved alot, and has robust ecology around it (IntelliJ, Spring, Hibernate, etc.) so it is very capable and well supported. My main problem is that I'm bored with it. Too much scaffolding, too much configuring, too many nouns. I think the ultimate legacy of java (if Oracle doesn't mess it up) will be the JVM, which is very good. Many new great languages are coming out for the JVM (Scala, Clojure, etc.) and is considered by many as the best way to run ruby.

As for python, it is a good language, but if you want to learn functional paradigms, I find it helps to exercise in mostly pure functional language (like Haskell, Scheme, Clojure) before moving into a "mixed" language such as python or ruby.

I'm personally quite fond of D, which is basically a conjunction of C++ and Java, and Erlang. Erlang definitely has some warts, but the message passing model is quite nice.

C++ at work, C++ at home. I love it, I love it, I love it.

I like to think of us as artists, the computer is our canvas, the compiler is our tool. We code for different reasons, we have different opinions and techniques. But in the end, it is the love for our craft that drives us.

What can I say? I'm a hopeless romantic

Lord Cuze wrote:

C++ at work, C++ at home. I love it, I love it, I love it.

I like to think of us as artists, the computer is our canvas,

and template metaprogramming is paint thinner and a lighter.

*Legion* wrote:
Lord Cuze wrote:

C++ at work, C++ at home. I love it, I love it, I love it.

I like to think of us as artists, the computer is our canvas,

and template metaprogramming is paint thinner and a lighter. ;)

LOL