Is Switching To a More Advanced Language Going To Make You a Better Developer?

Occasionally, and probably less often than I should, I read blogs and newsletters about programming and frameworks. Usually instead of finding useful information about the latest developments I’m finding flame wars on languages. They most often target PHP, though sometimes come from Java and .NET guys and target Ruby, Python and Perl.

“PHP isn’t even a programming language, it doesn’t have XYZ!!!”

You’re right, and not only that – it doesn’t even have ABC. But surprisingly it just works fine without it.

When you read these flame wars on forums and blogs you may start thinking that everyone out there works for NASA or Merrill Lynch (oops), does super advanced programming that your life depends on.

The truth is that at least 90% of the web software out there doesn’t need most of the advanced features that even languages like Ruby have, and that doesn’t make the software less valuable. A simple blogging platform like WordPress, written in PHP and working with MySQL has done a lot more for the internet and for the people than some advanced banking software has. A cheap looking personal network called Facebook (surprisingly, written in PHP again) does a lot more connecting people all over the world than those forum heroes who bash you for not using namespaces.

I’m not writing this to undervalue the work of the “real programmers”, neither to say that PHP is any better than Ruby or Python, or that Ruby is better than Java or .NET. PHP is indeed not a very well designed language and lacks many cool things that the others have.

What the simple languages like PHP and Perl have however is the ability to start quickly, throw few lines and have something working and in fact and finally to get the work done well enough.

Learning a more advanced language is definitely a plus, but switching your development to it may not be worth it. Your work matters because you create valuable software that people use, not because you know Java better than everyone else in your city. If PHP helps you to produce more good software in short time and cost effectively, then it is all you need to be successful. (And yes, to make more money).

P.S. This advice like everything in this blog is more attended to independent professionals and not so much for people who are looking for a job – to the latter it may make some sense to switch to more advanced language and get a better salary.

Random Thoughts About Developing A Facebook App

I’ve built a small Facebook application for parents mostly with the idea to see their API works and if it could be a decent widgetbait.
The application is still quite simple, but I think the idea is good – it’s lets you spread the word about your children by placing a badge in your profile. In addition you can find other Facebook users who have children of same gender, age or zodiac like yours.

If you have a Facebook profile and children, you may want to give it a try.

Here are few first thoughts about the development:

  • The API documentation seems quite unorganized and confusing
  • Sometimes you need to do quite stupid things. For example to “register a template bundle” just to publish a feed on user’s wall.
  • The lack of normal Javascript in FBML mode is boring
  • At least I didn’t stumble on any bugs

What about the results of a widgetbait? A SEO effect cannot be expected, because (as far as I know) all the pages in Facebook are accessible to logged in users only. So the “bait” can be only for direct traffic. You need at least 5 active users in order to submit your application to the directory, so it’s nothing like to drop a wordpress plugin and get the traffic rolling in.

If you plan to use a Facebook application for promoting your own site(s), you will need at least:

  • A good idea. Something original. Not like 90% of the apps out there
  • Some initial users. It would be a good idea to promote the app on your site first before expecting the app to promote your site
  • Your app and the site/service you are promoting should have something in common. For example our “I have children!” is promoting baby contest site and free baby photo album.

I’ll hopefully have some more results and stats from this widgetbait to share soon.

Celeroo Builder Is Alive

Today morning Celeroo Builder went live. If you have a web development project at your plate, you can sign up risk free and build it in probably 50% of the time that you would need if coding it manually.

Even if you are not a developer yourself, you can benefit from the builder. You can draft most of your application yourself (it’s simple enough for non programmers) and hire developers to finish only what you couldn’t do with the builder. How much you can save? Better just check yourself.

Web software development ain’t unlike Dating

Here’s a nice article – Web software development ain’t unlike Dating – posted on Celeroo Blog sharing an interesting approach to web development.

If you are a software developer or company struggling in the unsure market right now, it’s much likely that you are failing at some of the points discussed there.

Most developers/studios websites or their applications are not presentable at all. You can hardly understand what they are offering, how it can be beneficial for you and are they offering anything at all.

Many developers are so keen on writing “amazing loops” and “sexy recursions” that they build apps without taking in mind the user needs. If you are one of them, then you should generally change the way you do business.

The other points in the article also address very common mistakes, so I’d suggest you just read it.

What’s Your Point Of Difference In Web Design or Development?

“We do web design and development” doesn’t work. “We do low cost PHP/MySQL” doesn’t work either. There are too many who do that and your head isn’t going to stick up in the mob. Low cost is a bitch anyway.

“I am the best programmer” or “We have a great team” is just as flawed. “Best” is subjective and I bet you aren’t, sorry (I doubt exactly “the best” is reading). Even if you were, your customers don’t care. They want a job done well for a good price and most won’t pay crazy fees to have a great work done. What could be so great in a simple PHP site anyway? It either works correctly or it doesn’t.

If you want to build a successful business in web design and/or development, you need an USP.

I can think of at least two relatively easy ways to differentiate your service by all the “we do it all” crowd.

Specialize in technology

If you are a freelance developer or small development studio, taking this approach can really help you find your market position. For example you can specialize in doing Facebook apps, WordPress plugins, Joomla modules or Twitter apps. Going this route exposes you to a smaller but a lot more targeted and less competitive market. If you build your site or blog around building Facebook apps for example you will have much better chance to rank in search engines for such searches, they are a lot more likely to convert into real customers and you can quickly become recognized as an authority in building Facebook apps. Such a targeted approach will also justify some advertising (PPC for example) because an ad “Get a Facebook app developed” is having a much bigger chance to convert someone who is looking for a Facebook app, rather than an add “Outsource PHP Programming” which leads to a site offering all kind of PHP programming services.

Specialization in technology will also help you become really good in the area and will easily justify higher rates.

You shouldn’t worry about the market being too small. If you can’t find enough customers for building Facebook apps, you can add a site or subdomain (“department”) offering programming Twitter apps. It’s enough to tell that you are doing some specialized service to convert better the customers who are looking for it. (assuming you really can do it of course)

If you are a designer or design studio, there are plenty of options for specialization as well. You can offer explicitly WordPress templates, Joomla themes, logo design, design of sites for mobile devices, Flash design etc. The key again is not to have a site saying “we offer web design”, but to have a point of difference.

Specialize in niches

If you a dentist and want a website you will prefer “Dentist’s Web Design” or even “Medical Web Design” (ridiculous company names of course, don’t use them) instead of “Web Design Gurus”. This is not only a marketing trick. Building a good web site (even if you do only the design or the development) requires a knowledge about the business logic your client operates in. Of course you can always just follow the requirements document (if you are lucky enough to get detailed one) but your service will be so much more valuable if you can provide advice and input that will genuinely help the client in their business.

By specializing in a niche you will quickly become knowledgeable about it and about the online strategies the businesses in that niche use. This will not cost you losing good shape in the general web field – you’ll have to do good design/development in the niche anyway. Even if several years you do exclusively websites or software for forex brokers nothing stops you do a completely different site after that. On the contrary, you may even transfer good ideas from one niche to another which is often incredibly valuable.

Specialization also means reuse. For example a while ago in Axaya we were doing a lot of social network sites so we got not only good in them, but also had a lot of ready code to reuse. This allowed us to give good quotes and show impressive portfolio to customers who look for social network sites.

Whatever business you are in, think how to differentiate yourself from the crowd. Being the best is not the answer even if you are. Being the cheapest is the worst possible answer even if you are only a pretender. Being different is what you need – it requires some effort, thoughts and time, but pays better long term.

New Very Relaxed PHP Framework Released

Celeroo-Frame is a little, fast and very relaxed PHP MVC framework. Some developers would even say it’s not a framework but a collection of libraries and coding practices. It’s ok to call it that – the most important thing is it helps you build PHP/MySQL applications really fastCeleroo-Frame can be downloaded hereCeleroo-Frame is a result of mine and Axaya‘s years of reusing and optimizing code in real live applications. Initially we didn’t aim to create a framework – it just happened as a result of real work. So you will not find as many libraries, tools and magic as in the other PHP frameworks, but you will certainly find a lot more freedom.While it implies certain way of doing the things, there are virtually no restrictions to what you may want to do and change. Unlike the other frameworks, its core is directly part of your application so you can change everything.The reason Celeroo-Frame was developed and released is to help you achieve really rapid development of web applications. The learning curve is extremely short and coding with it, I believe, is real fun. I recommend you to check the information at Celeroo blog as there is full documentation. Your feedback will be appreciated. Note that Celeroo-Frame is in Beta stage in the sense that it has just been packaged as a framework. (By the way Celeroo also uses Celeroo-Frame. You will hear more about Celeroo pretty soon).

Widgetbait Case Study – Update 2

Just a quick update on the widgetbait case study. Today the target investment calculator page is ranking on page 5 in Google and on page 12 in Live. Yahoo is still not showing it within the first 20 pages.

Fifth page in Google may not be a huge thing but is significant progress since the previous time. Important thing to mention is that in addition to the widget bait we got few links from forum signature, few links from one article and a link from Hubpages hub. So it’s not the widget alone, but good luck ranking for such a keyword without it.

Now the next step includes wiring one more article and maybe making one more hub and squidoo page. Since this is very unlikely to give significant improvement, we’ll plan the next widget targeting the same page. Stay tuned.

Widgetbait Case Study Continued

If you have no idea what is all about, please check the first post.

There is no PR update yet, but 10 days after releasing the investment calculator plugin the first results can be seen.

Searches for “investment calculator plugin”, “investment calculator wordpress”, “investment calculator wordpress plugin” and “investment calculator wp” all rank sharkinvestor.com on the first place in Google. For most of the key phrases we get also the target page – http://sharkinvestor.com/investment-calculator/ – ranked as a sub-result of the plugin page. Yahoo and Live are pathetic and not only rank the domain lower, but also return completely irrelevant pages from it. I am not a fan of Google’s monopoly but it clearly shows to be much better in this experiment so far.

Now, the results for the above phrases are great, but our target is to rank for “investment calculator”. Of course I don’t expect that to happen only with one widgetbait, but there is already some success: the right page ranks in Google currently at 195th place (page 19 of the results). Being in page 19 in practice is like being no ranked at all, but we look for the fundamental effect and it is quite good. From now on, we’ll do some standard linking to see how much the combination of both will help.

We’ll publish few articles, will get few forum signature links and few links from partner sites. I’ll ensure one PR 6 link from the FirstTimer’s page – I’ll post something like “Other plugins from the author”.

We’ll follow the result after a month and if it is still not good enough, it will be a time for the heavy guns – another widgetbait for the same page.

Six Ajax Problems That Make Your Application Look Dumb

Do you remember how websites looked 3-4 years ago? There was no Ajax at all, maybe only some fancy useless HTML. Is it now better? In general, I think yes. But Ajax is often being a bit abused, and what’s worst people want Ajax in their web applications no matter why. This forces many web developers put ajax everywhere often without to consider several serious issues.

1. Ajax does not declare functions

If you hope to declare functions in Ajax loaded javascripts and call them during execution time you’ll get an unpleasant surprise. It does not work. You need to declare your functions in the loaded page, not in the ajax response. However if you want to call existing functions in your ajax-generated code, no worries, go ahead.

2. IE caches GET requests

Internet Explorer knows how to cache the ajax response and is not afraid to do it. In fact it loves cache so much that you won’t be able to use the dynamic effect of Ajax call to the database if you send your request by GET. If your ajax calls the database, stupid IE keeps returning cached data even if you refresh the entire page.

Solution: Use POST calls. I know it’s slower, but how does it matter when GET does not work well?

3. Ajax does not upload files

If you have an ajax loaded page and you want to include a file upload field in it, I have “great” news for you: it does not work. What, is it not news? Poor you, you have already realized one of the ugliest limitations of ajax. Because of it, the developers need to all kind of gimmicks or use third party scripts with hidden iframes to make file upload works. That’s far away of web standards, user friendly code and search engines.

Hey, if all your users are geeks who browse with Firefox and like to poke config files, you can use this idea. Cool, eh?

4. Ajax causes memory leaks

See here.

5.  How To Make Back/Forward Buttons Work On Ajax Page?

No, this is not a rhetorical question, I am really asking you how. Because I don’t know. Wait, I asked Google and he said this. Does it look simple to you?

Ajax Sucks For SEO

If all you care is to make fancy website, go ahead, use ajax everywhere. If you partner with popular websites or have big bucks for advertising, you’ll have no problems. What, do you say you are on a budget and hope to get visitors from the search engines? Forget either about Ajax or about Google.

Do you know more things that Ajax makes to help you look dumb? Go ahead, share them.

P.S. No, I am not saying don’t use ajax. I’m just pointing few things that suck.

WidgetBait Case Study: A WordPress Plugin

A couple months ago I made a small test with FirstTimer Worpdress Plugin. When published it and with almost no effort the page got PR 6 and still has it. Considering that the homepage of this site has only PR 3, this sounded quite interesting.

The Investment Calculator Case Study

When I created FirstTimer I did not target any specific search engine optimization benefits. Now it’s time for a more focused widgetbait effort and for it we picked the site which first started using FirstTimer as well – http://sharkinvestor.com.

The task will be to optimize this investment calculator for exactly the same phrase – investment calculator. The phrase is competitive but not so much that it would be a dead cause. I will limit other SEO to minimum and use mostly the worpress plugin for this study.

Currently sharkinvestor.com does not rank at all for the keyphrase, so it will be quite interested if something will happen in the next few months. As a side effect of course we will be watching the direct traffic which will come from the widgetbait and the bounce rates.

There is a big chance that the plugin page will rank better for “investment calculator” rather than the page which we want to rank (the live installed calculator). This is also something which is worth thinking about once I get any results.