Altabel Group's Blog

Posts Tagged ‘website

If you love beautiful code and believe that development must be enjoyable, you’ve come to the right place. Let me introduce you Laravel, a web application framework of new generation. Don’t be skeptical, because it deserves to be noticed.

Laravel has become one of the most popular PHP framework. Laravel has changed the way many people write PHP for the better. It is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create beautiful web-apps using elegant and expressive syntax. Currently, it is the most starred PHP project on Github and a lot of companies (including Altabel Group) and people all over the world use it to build amazing applications. In 2015 sitepoint.com conducted a survey to find out the best PHP-framework for developers. Laravel won in nomination of Enterprise Level Framework and Personal Project Framework.
 

 
You are here because you want to start your project on Laravel, and don’t know what course to take, right? Let’s get started.
 
Backgroud

Every framework has its own version history – it’s being maintained and updated. So every new version brings new functionality, some functions are changed or deprecated.

Laravel was created by Taylor Otwell in 2011.

  • Laravel 1 was made available in June, 2011. It lacked support for controllers that prevented it from being a true MVC framework.
  • Three month later Laravel 2 was released, bringing various improvements from the author and community. As a result Laravel framework became fully MVC-compliant.
  • Laravel 3 was released in February 2012 with a set of new features including the command-line interface (CLI) named Artisan.
  • Laravel 4, codenamed Illuminate, was released in May 2013. Laravel 4 version was the one which brought big popularity to Laravel framework, but it’s not updated anymore, and also it lacks a lot of functions released in Laravel 5.

There is an important term – LTS version, which stands for Long Term Support. It means that bug fixing for that version is to be provided within 2 years, until the next LTS version is released. For non-LTS versions bug fixing will take only 6 months, unless it’s a security fix which is carried out within1 year after a release date.

The first version to have that status is Laravel 5.1 (June 2015). According to the roadmap released by framework author, there should be a new subversion every half-year: Laravel 5.4 – Winter 2016, Laravel 5.5 – Summer 2017.

It’s quite important to know which version you will be using for your projects. For new ones it’s not advised to use Laravel 4.x version – you should use Laravel 5.x, probably Laravel 5.3 as the newest version at the time of writing this.
 

 
Peculiarities

  • The Laravel framework has a few system requirements: PHP >= 5.6.4, OpenSSL PHP Extension, PDO PHP Extension, Mbstring PHP Extension, Tokenizer PHP Extension, XML PHP Extension. This whole component kit’s presented in Windows OpenServer. Also make sure you have installed Composer on your machine.
  • Here are the framework’s main features: bundles, eloquent ORM (object-relational mapping), query builder, application logic, reverse routing, restful controllers, class auto loading, view composers, blade templating engine, IoC containers, migrations, database seeding, unit testing, automatic pagination, form request.
  • Using Laravel you can complete massive common tasks such as database migrations, queuing, authentication, routing, sessions, and caching with simplicity.
  • Laravel has made processing with database very easy. It currently supports following databases – MySQL, Postgres, SQLite, SQL Server.

If you are familiar with HTML, Core PHP and Advanced PHP; Laravel will make your task easier. It will save you lots of time when you are developing a website from scratch. The website built in Laravel is also secure. It prevents the various attacks that can take place on websites.

Laravel offers a robust set of tools and an application architecture that incorporates many of the best features of frameworks like CodeIgniter, Yii, ASP.NET MVC, Ruby on Rails, Sinatra, and others. Laravel is built using Symfony, Doctrine, Faker, Carbon and other libraries. All of these components work flawlessly with Laravel.
 
“Pros”

1. Flexibility – there are many ways to complete one task.
2. Excellence – Laravel is the result of a long-term commitment to excellence, best practices, use of solid design principles, and the steady vision of the Taylor Otwell.
3. Evolution – each new Laravel version brings us more and more the new features which are worth trying.
4. Documentation – Laravel has beautifully written and comprehensive documentation. The Laravel forum also has many answers to common problems.
5. Official Packages – The Laravel framework has a number of extremely useful packages that we can add via composer that extend the framework.
 
“Cons”

Everything has its failings. And Laravel is not an exception.

1. Syntactic sugar – there is too much syntactic sugar in Laravel. Often you can face difficulties trying to maintain a unique build for your project code.
2. Juniors – Laravel attracts lots of newbies who can’t even cope with essentialities: framework documentation, composer and automatic loader.
3. Taylor Otwell – Why? Is it a real minus? Taylor alone determines framework future, e.g. he’s closed issues on Github, or he demands from developers to describe bugs through pull request, and so on. Yes, it’s okay from one side. But from the other – it’s not an open source.
 
Community resources

The Laravel community is growing fast and there are a lot of support and learning resources available.

Documentation for the framework can be found on the Laravel website. The documentation is very detailed and there is a large community based around Laravel. Some of the notable community resources are Laracasts, Forums, Podcasts, Jobs, Laravel News and Laracon.

Laracast
  • Laracasts. Laracasts is a paid video site, with numerous series that contain programming lessons on Laravel, PHP, Javascript and more. Jeffery Way does a fantastic job of explaining how things work and the concepts and design patterns that fuel the Laravel framework. Laracasts is a huge plus for Laravel. And having this resource available is another reason to love the framework.
  • Forums. It’s the most common way to find an answer to about any problem.
  • Podcast. You generally get a behind the scenes look at what’s coming down the road.
  • Laracon. Laracon is a conference centered around the Laravel framework, covering its development, uses, and related general software development practices. Laracons are taking place in both United States and Europe, organized primarily by UserScape with additional help provided by a number of sponsors.
  • I recommend to anyone who wishes to learn the framework to get acquainted with above mentioned resources. It’s worth your time to do it.
     
    Conclusion

    I hope that this little introduction to the world of Laravel has shed some light and help you get some insights about it.

    Laravel is an awesome framework to work with. It focuses on simplicity, clarity and getting work done. It’s designed to help you get started on building your own apps with Laravel. And Altabel Group will be happy to assist you with it. Remember, coding with Laravel is coding with elegance.

    If you have any questions or comments, be sure to post them below and I’ll do my best to answer them!

    Thank you for reading.

     

    Victoria Sazonchik

    Victoria Sazonchik

    Business Development Manager

    E-mail: victoria.sazonchik@altabel.com
    Skype: victoria_sazonchik
    LI Profile: Victoria Sazonchik

     

    altabel

    Altabel Group

    Professional Software Development

    E-mail: contact@altabel.com
    www.altabel.com

JavaScript is the most accessible cross-platform language nowadays. It’s used both on front-end and back-end website development.

Using it Altabel developers create web-apps which includes offline mode, desktop apps, apps for smartphones and tablets, add-ins for Microsoft Office, SharePoint and Dynamics. And if you don’t get acquainted with JavaScript yet we strongly believe that you should do it immediately!

I reckon many of us know there are plenty of different languages compiled in JavaScript. It’s CoffeeScript, Dart, GorillaScript and others. To be fair some of these languages are fly-by-night creations that have never really taken off in the wild. But many of these languages are major engineering efforts with large ecosystems and large corporate backers. With so many frameworks and languages out there it can be difficult to figure out which one is the best.

In 2012 Microsoft analyzed the situation and created a new language with a possibility of dealing with problems and using existing JavaScript insights. Thus, a free open source programming language TypeScript was developed and maintained by Anders Hejlsberg (co-creator of Turbo Pascal, Delphi and C#). From the very beginning the new language started expanding rather quickly due to its flexibility and productivity. Considerable amount of projects written in JavaScript began to transfer to TypeScript. Popularity and relevancy of the new language leaded to the fact that lots of TypeScript ideas became the part of new JavaScripts standard afterwards. And moving forward the AngularJS 2.0 version (today one of the most popular web frameworks) was completely written on TypeScript with the help of Microsoft and Google.

But why TypeScript?

Let’s review main reasons of its popularity:

  • TypeScript is a typed superset of JavaScript. In other words any valid JavaScript code is also valid for TypeScript.
  • TypeScript may be used to develop JavaScript applications for client-side or server-side execution.

Microsoft’s TypeScript seems to generate the most attractive code and is considered to be one of the best JavaScript front-ends. TypeScript adds sweetness, but at a price.

  • TypeScript can also be used with existing JavaScript frameworks/libraries such as Angular, jQuery, and others and can even catch type issues and provide enhanced code help as you build your apps.
  • TypeScript can be just the right fit for projects in which developers try to remain relevant without the need to learn a whole new syntax.

The ubiquity of JavaScript as a runtime has inspired people from a variety of programming backgrounds to recreate JavaScript as they see fit. And yes, TypeScript lets you write JavaScript the way you really want to.

  • TypeScript differs from JavaScript with possibility of evident static objectives, with usage maintenance of full-blown classes (just as in traditional object-oriented languages), and also with maintenance of logging on modules. It’s aimed at development speed raising, simplifying of legibility, refactoring and reusability of your code.
  • TypeScript has many additional language features but defining types and creating classes, modules, and interfaces are some of the key features it offers.
  • In TypeScript the same types are supported as well you would expect it in JavaScript. Types enable TypeScript developers to use highly-productive development tools and practices: static checking, symbol-based navigation, statement completion and code refactoring.
  • TypeScript implements many conceptions that are appropriate to object-oriented languages such as extending, polymorphism, encapsulation, accessibility modifiers and so on.
  • Lots of TypeScript features have strict rules, so various code formatting errors are excluded. Which means that the possibility of incorrect implementation or inaccurate method invocations is eliminated.
  • TypeScript potentially allows writing large complex programs more quickly. Thereafter it’s easier to maintain, develop, adjust to scale and test them in comparison with standard JavaScript.

Drawbacks

TypeScript has a number of other positive features that are out of the scope of this article. On the other hand, there are two significant minuses exist.

  • Probably, the biggest minus is entry threshold and number of specialists on the market. Nowadays there are not so many specialists with solid experience in this language.
  • In comparison with JavaScript, it’s needed more time for the development. It stems from the fact that apart from class implementation one should describe all enabled interfaces and method signatures.

TypeScript 2.0

There are some significant changes coming in TypeScript 2.0 that continue to deliver on the promise of making JavaScript scale. This includes a whole rewrite of the way types are analysed in the flow of the code and an opt-in feature that starts to deal with logic errors around the flexibility of things being undefined or null in JavaScript. Other features planned for TypeScript 2.0 include read-only properties and async/await downlevel support.

TypeScript creator Anders Hejlsberg already has plans for TypeScript 2.1 and beyond. Features envisioned for these releases include a new JavaScript language service in Microsoft’s Visual Studio software development platform and more refactoring support.

The most recent version, TypeScript 1.8, rolled out in February, includes several more features like F-Bounded polymorphism, string literal types, etc.

Conclusion

So, if you haven’t taken a look at TypeScript, I have hopefully convinced you that it is something to at least worth a bit of your time. It has some of the best minds focused on making JavaScript scale and the team is going about it in a way that is open and transparent. By embracing the reality of JavaScript and building on top of it, in my opinion TypeScript is transforming the common language of the web, for the better.

We will be happy to hear how you use TypeScript in your current projects, if you like it, if you are planning to switch to this language, what are the pros and cons in your opinion, etc. Feel free to share with your thoughts in comments below!

 

Victoria Sazonchik

Victoria Sazonchik

Business Development Manager

E-mail: victoria.sazonchik@altabel.com
Skype: victoria_sazonchik
LI Profile: Victoria Sazonchik

 

altabel

Altabel Group

Professional Software Development

E-mail: contact@altabel.com
www.altabel.com

 

“Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty.”
Donald Knuth, 1974

 

It’s better to start your journey into the career of programming by answering the question “Do you really need programming?” This question does not apply to those, who majored in computer programming or was close to it. If at school you were good at math, if you like to spend a lot of time sitting in front of the computer, if you want to learn something new, then programming is for you. What is more, this area is now in demand and highly paid in the world, job vacancies for the post of programmers are always open. Isn’t it the best time to be a programmer? 🙂

Everyone knows that the future programmer should be able to think broadly and to present the project from different perspectives before its implementation and realization. Unfortunately, the machine does not understand a human language. Of course, I’m not talking about Siri and other voice recognition — I’m talking about the creation of new software. To create the calculator, the computer needs to be given the task in the same way as the foreman explains to workers how to lay bricks. That’s why you can’t do anything without understanding the programming languages. Well, first you need to decide what kind of programming languages we should start with.

And here everyone chooses a language which will be useful for him. It depends on the kind of products you are going to develop. Most of us studied Turbo Pascal at school, and it’s no news that this language is practically not used anymore. So, if you want to join the team of programmers in the nearest future, the choice of language should be made sensibly.

Among the most popular programming languages in 2016 are Java, followed by C languages, then Python, JavaScript, PHP, Ruby, etc. It should come as no surprise that the more popular language is, the more chances you have to find work in the future. So, you’d better start with Java or C#, as these are the best paid and relatively simple learning languages of writing code. If you can’t cope with them, then you should try to learn Python. This language suits for quick and effective programming.

But if you have no programming experience at all you can start with something more simple for understanding. Good examples can be the basics of HTML and CSS.

Why? These two languages are essential for creating static web pages. HTML (Hypertext Markup Language) structures all the text, links, and other content you see on a website. CSS is the language that makes a web page look the way it does—color, layout, and other visuals we call style. Well, if you are interested in making websites, you should definitely start with HTML and CSS.

Let’s move to JavaScript. It is the first full programming language for many people. Why? It is the next logical step after learning HTML and CSS. JavaScript provides the behavior portion of a website. For example, when you see that a form field indicates an error, that’s probably JavaScript at work.

JavaScript has become increasingly popular, and it now lives outside web browsers as well. Learning JavaScript will put you in a good place as it becomes a more general-purpose language.

Some people also suggest choosing Python as the first programming language because Python’s program code is readable, first of all. You don’t even need to be a programmer to understand what is happening in the program. Due to the simple syntax of Python you will need less time for writing programs than in Java, for example. A huge base of libraries will save you a lot of strength, nerves and time. Large technology companies are working with Python: Yandex, Google, Facebook and YouTube. It is used for web applications, game development, software for servers.

Java can also be a good choice for a beginner. This language is more popular than Python, but a bit more complicated. At the same time, the development tools are much better designed. Java is one of the most popular languages for the backend development of modern enterprise web applications. It is used in Amazon, eBay, LinkedIn and Yahoo! With Java and the frameworks based on it, developers can create scaling web apps for a wide range of users. Java is also the primary language used for developing Android applications for smart phones and tablets. Moreover, after Java you will be able to work with low level programming languages.

PHP is one more popular language. The PHP language, along with databases (e.g. MySQL) is an important tool for creating modern web applications. Most of the sites developed on PHP are focused on a large amount of data. It is also a fundamental technology of powerful content management systems like WordPress. There are no normal imports in PHP, there are many solutions to one and the same problem. And it makes training more complicated.

 

 
The languages C and C# are a bit complicated for a beginner. But if you develop software for embedded systems, work with system kernels or just want to squeeze out every last drop from all available resources, C is what you need.

Ruby has begun to gain popularity since 2003, when the framework Rails appeared. Used widely among web startups and big companies alike, Ruby and Rails jobs are pretty easy to come by. Ruby and Rails make it easy to transform an idea into a working application, and they have been used to bring us Twitter, GitHub, and Treehouse.

Choosing a programming language may still seem challenging. It shouldn’t. You can’t go wrong. As long as you choose a language that is regularly used in technology today, you’re winning. When you are starting out, the goal is to become solid in the basics, and the basics are pretty similar across almost all modern programming languages.

Part of learning to code is learning a language’s syntax (its grammatical or structural rules). A much bigger part of learning to code, the part that takes longer and gives you more headaches, is learning to solve problems like a programmer. You can learn the grammatical structure of the English language pretty quickly; however, you won’t truly understand the language until you put that grammatical structure to use in a conversation. The same is true in programming. You want to learn the core concepts in order to solve problems. Doing this in one language is similar to doing it in another. Because the core concepts are similar from language to language, I recommend sticking with whichever language you choose until your understanding of the core concepts is solid. If you have a clear idea of your reasons for learning to program, and know exactly what you want to accomplish with your new coding skills, then you’ll be able to make the right choice.

How did you guys get into programming? What are the best programming languages for first-time learners?

Please, share with us your experience and opinion here below 🙂

 

Kate Kviatkovskaya

Kate Kviatkovskaya

Business Development Manager

E-mail: Kate.Kviatkovskaya@altabel.com
Skype: kate.kviatkovskaya
LI Profile: Kate Kviatkovskaya

 

altabel

Altabel Group

Professional Software Development

E-mail: contact@altabel.com
www.altabel.com

People are increasingly making use of their mobile terminals (tablet and smartphones) to connect to the internet and it is important to adapt websites to the new browsing habits. Each terminal has its own features and limitations (such as the screen size) which will determine how a website will be displayed. The Responsive Design is a compelling solution if you want to have your website smoothly displayed on multiple screen sizes.

Responsive web design (RWD), is an important evolution in an increasingly on-demand world. RWD is a design approach that lets you view content in a way that is optimized for the screen size that you are viewing it on. For example, if I access a RWD website on my laptop, I will see the content formatted in a way that is optimal for a larger screen. And if I access that same website on my smart phone, I will see the same content reformatted to fit that screen size. The important thing about this is that it is showing me the same content whether it is on a large screen or small screen, only the layout is different.

It wasn’t long ago that the prevailing practice, when considering how to make your website mobile friendly, was to create a separate website for mobile devices along with separate content. The content would be pulled from the existing site and edited down for brevity with some sections being omitted entirely. All of this was based on the assumption that visitors to the mobile site would only want certain kinds of information and not others. Specifically information that would be consumed while “on the go,” and therefore needed to be short, to the point, and informative. Anything less, wouldn’t make it into the mobile site. The implications are that some of the content on the non-mobile site may be potentially long, pointless, and ultimately not very valuable.

One interesting aspect of responsive website design is that it forces us to think about the value of content. If it’s going to be shared across all devices, then anything other than short, to the point, and informative, doesn’t make the cut.  This is a great filter because it helps us focus on the purpose of the information.

Does this mean you should convert your website to a Responsive design? Let’s consider the Advantages of Responsive web design:

  • The advantages of Responsive Design are numerous. This technique allows a website to automatically adapt itself to the different screen resolutions.
  • Columns and images are automatically adjusted, resized and moved automatically according to the screen resolution. This technique allows optimum ergonomics in preserving the layout and the display of the information from the website.
  • The Responsive Design is a strategic long-term solution and you don’t have to worry about redirecting users to another version of your website. Once deployed, there is very little maintenance to perform and the cost of development could be often lower than creating and maintaining a dedicated mobile site.
  • Responsive Design also implies having a unique URL: perfect for promotional campaigns.

There are certainly some Disadvantages to Responsive web design so I thought I would list these along with pros for RWD:

  • If there are many benefits, there are still some drawbacks to Responsive Design. These include a longer loading time. Most of the time, users (browsers) are obliged to download useless a HTML/CSS codes. Similarly, the images are often stretched and not simply resized causing a negative impact on the loading time.
  • Responsive Design won’t allow you to easily adjust the titles, descriptions and other content on mobile phones. In addition, the development of Responsive Design websites takes more time.
  • The Initial Cost. It is obviously takes longer to code and test a website that is to work on a wide variety of screen sizes and devices so the initial cost of having a website designed is usually could be higher than having a non responsive site designed.

The Responsive Design is definitely an effective solution to provide an optimal user experience. This is a major evolution of web design inviting designers to take a new challenge. Disadvantages and limitations of using this technique are easily overcome by putting more emphasis on the design and development stages of your website. But still I have added the advantages and disadvantages above so that people can make their own mind up about the responsive approach, whether you might be an individual looking for a new web site or a designer considering the expansion of your own design services, it is always nice to know the pros and cons of any concept.

What are your thoughts on Responsive web design?

Polina Mikhan

Polina Mikhan
Polina.Mikhan@altabel.com 
Skype ID: poly1020
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Even if you only build websites using CMSs, you’ve probably heard the word “framework” before. You’ve probably also heard of a few famous web frameworks, including Ruby on Rails, Django and Bootstrap. Many experienced web developers build websites using frameworks and often find them easier and enjoyable to use.

In this article, we’re going to explain what a framework is, and when you might use a framework.

If you are currently doing one of the  Coding Training classes, this information will prove especially useful to you. If you are just using a CMS, this post will still contain some valuable insights, as many CMS systems can and are built using frameworks. For example, Drupal 8 is currently being built on Symfony and Joomla 3 is using the CSS framework Bootstrap.

What is Framework?

The goal of a framework is to allow designers and developers to focus on building the unique features for their project, rather than re-inventing the wheel by coding common, familiar features found across many websites and web applications.

A framework can be considered a pre-built that handles most of the repetitive or common features. As a result, unlike a CMS, a framework will probably not have a template/structure user interface (although this is not always the case, as Django provides an administration interface). Most of the activity will be done by writing code and interacting with different parts of the framework itself through code.

Often frameworks take a while to learn, but once you’re familiar with them, they should speed up your development time.

5 advantages to using a framework:

  1. Open-source: Most of the popular frameworks in many languages are open-source (or available to use for free). They also come with licensing that isn’t restrictive and allows you to build commercial products using such frameworks
  2. Documentation and support: Although this can vary (if the language being used is popular and the framework has a lot of developers using it), you can expect that the framework will either have good documentation, good support or both at the same time. It is worth mentioning that “good support” is a subjective issue at times. Typically, paid support will almost always be faster and more concise, but this also depends on the level of activity within the framework – as a framework like Ruby on Rails demonstrates with a massive community, which is renowned for its welcoming nature and good support too.
  3. Efficiency: This could be considered the most vital reason why frameworks exist. They eliminate the need to write a lot of repetitive code that you will find being used in many different applications. These include, for example, user-authentication and commenting systems. On average (if you have sufficient knowledge using a certain framework) you can expect to build a project in much less time than would be achieved writing code without a framework
  4. Security: Typically, a framework is developed and tested by many different developers. It is extremely likely that many security risks are addressed and tested when the framework is being built. New security risks can also be addressed and fixed quickly. However, security can also be considered a con, as will be mentioned in that section
  5. Integration: If you are building almost any type of application (including a website) and you want to store some data, you will typically use a database. Just like a database, there also exists many other tools that link to web development. Many frameworks will thus make it easier to link to these tools and also communicate with them (for example, when “talking to” a database is abstracted away in a certain framework, making communication with the database much easier)

5 disadvantages to using a framework:

  1. Limitations: Generally, you will not be able to do almost anything with a single framework. They are all restricted in some way, from coding paradigms to database designs and everything in between. A good way to work around this is to see what the framework is being used for by other developers in the community, as this will give you an idea of what you can achieve
  2. Performance: With the popularity of client-side JavaScript MVC frameworks like AngularJS, EmberJS and BackboneJS growing since 2012, performance can also be considered a factor. Although performance issues did exist before, they weren’t as relevant as today, where an entire application is loaded through JavaScript, using a framework as the tool for building that application. Whereas you might not feel the impact of loading a 75kb compressed-framework .js file on your PC (with high speeds), this .js file will definitely impact mobile users (who may have slower speeds on their smartphones or tablets)
  3. Learning bias: If you decide to learn how to use any framework from some programming language you are familiar with, chances are that what you learn will be somewhat different to the language itself. This is due to the fact that a lot of those repetitive tasks have been created in custom functions and other parts, which is why you will learn such things that may not have existed in the language lessons itself. Apart from that, you may also learn a lot of things that may be irrelevant to you whilst using the framework in real-life, but are necessary to grasp how the framework works
  4. Steep learning curve: Although this isn’t always the case, most frameworks can be difficult to learn and even more difficult to master. After some simple research into this matter, a university professor said that it will take about 2 years (with no programming background) to become familiar and comfortable using a language (Ruby) combined with a framework (Rails). This may not be the case when being self-taught or having years of programming experience, but I would say that even with experience, at least 3-6 months will be needed to become confident using any framework (based on continuous learning and practice)
  5. Cost: Frameworks require more development expertise and experience than most CMSs. As a result, it can be more costly to hire reliable framework developers than reliable CMS developers. As the experience shows, the average project built with a framework is more expensive than a similar project built with a CMS.

Examples of popular frameworks

Below are some popular web frameworks (in no particular order) for different web languages. This is not an extensive list, as there exists many more options out there.

PHP: 1.Yii; 2.CodeIgniter; 3.CakePHP; 4.Zend; 5.Symfony; 6. Laravel

Ruby: 1.Rails; 2.Sinatra; 3.Padrino;

Python: 1.Django; 2.Web2py; 3.TurboGears; 4.Flask

JavaScript: 1.AngularJS; 2.EmberJS; 3.BackboneJS;4.KnockoutJS

Design/CSS frameworks: 1.Bootstrap; 2.Foundation

Over to you?

Have you built any websites using a framework instead of a CMS?

What were the advantages and disadvantages of going with a framework?

Share your feedback or any other experiences below.

Polina Mikhan

Polina Mikhan
Polina.Mikhan@altabel.com 
Skype ID: poly1020
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Working with many startups I was wondering recently why Python and Ruby are so popular and common with young and promising startups, especially Scandinavian ones as my experience shows. I am curious if anyone has analyzed the trend towards Python over Ruby with startups? Also I would like to find out what are the advantages of Python over Ruby if they are so?

I think a lot about choices and decisions at startups. Picking the language/platform to use at a startup is one of the harder decisions. Here I would like to mention the fact that most of startups today make their choice toward Python or Ruby over PHP or Java. From what I have read, PHP is just an inferior language to Python and Ruby. Even though a lot of people are using PHP because it is easy to get started, it seems to be easier to develop bad habits with PHP. Why jump on a bandwagon when you obviously know is broken? I’ve come to realize that the main reason why PHP gets into trouble with the purists is that there are just so many ways of doing one thing — it is not that standardized. I think it became the most popular language only because it’s so easy to pick up!

Python/Ruby win over Java on speed of development, and conciseness of code. This generally makes Python/Ruby a better choice for small startups for whom speed to market, and ability to implement new features matters most. Most of the modern sites chose Python when they were small startups. Only later did they have to scale. Websites tend to be horizontally scalable, meaning that for a surprising range of volumes of traffic you can just throw more webservers at it and the bottlenecks will be at other layers (for instance the database).

Searching for relevant information to compare both Pyton vs Ruby languages and analyzing customers’ demand on the software development market I found out that Python appeared to be the more popular choice for startups trying to get a minimum viable product launched and seek out potential venture capital.

This has less to do with the merits of either language and more to do with the philosophies of the frameworks represented by either language. RoR really can’t be beat as a rapid application development framework, and developers discussing Ruby on the web are generally referring to RoR. Django purports to do the same, but the overall philosophy of the python community is more minimalistic – python developers generally prefer to make their own selection of tools such as ORMs, Persistency layers and libraries.  A lot of people start Python web development with Django but move on to something more minimalistic like Flask, simply because the community seems predisposed to building its own stack in this way. RoR is more opinionated, and developers who are more predisposed to hitting the ground running, especially in the startup field, often take the Ruby fork in the road.

There is a “coming of age” point for startups coming from RoR or PHP, however.  I’ve heard about several companies who had this exact same experience and ended up moving towards something like Python or Scala.  I’m not certain this is specific to python, but I can say that as startups grow and become more ambitious, they move into problem domains poorly represented strictly by web frameworks/languages.  Search features and data extraction increasingly rely on advanced data mining techniques utilizing things like natural language processing and find they need to reengineer their stack a little to accommodate new ideas. Increasingly I see companies not abandoning their RoR/PHP/Django frontends, but creating separate REST APIs that almost always use bare python or a JVM language to take advantage of more complex computation outside of the HTTP req/response model.  Ruby could be used for this kind of offline processing, but the toolkits are just better and more mature in other languages since RoR is so prevalent in the Ruby community and consumes a great deal of the mindshare.

The fact of the matter is that most web startups represent feature sets early on where development speed is the prime concern, and so the language/framework with the biggest potential hire base and best RAD features typically win out early on.

As my personal point of view that no single language can answer every problem satisfactorily, and it is foolish to stubbornly stick to a single language for every case. Nevertheless a lot of our clients stick to Python when starting up their business. Let’s try to see what are the advantages of Python over Ruby?

The two are more similar than they are different, in everything from design to disadvantages to common uses – you can’t really go wrong either way, and shouldn’t base your decision on syntactical differences.

As Ruby developers say, Python’s main advantage has nothing to do with the language’s features. It’s more subjective: it seems that Python has more momentum amongst serious computer scientists. It’s increasingly popular in academic and scientific applications, and a lot of the technologists I respect the most seem to prefer it. By comparison, the Ruby community feels more designer-y and relatively more novice.

What this means is that while the Ruby world has very slick out-of-the-box product solutions, the Python world seems to produce more exceptionally well-written components like Tornado (web framework). Combined with it being used at Google and the potential for stuff like LiveNode to be released as open-source, I’d cast my lot with Python if I were starting today.

Thinking Python may be the best choice of startups, what is your opinion on this?

Looking forward to hearing from you!

 

Polina Mikhan

Polina Mikhan
Polina.Mikhan@altabel.com 
Skype ID: poly1020
Business Development Manager (LI page)
Altabel Group – Professional Software Development


%d bloggers like this: