LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

How to Write (More) Predictable and Maintainable CSS: 9 Developer Tricks
CSS is very flexible since it doesn’t impose on how you should write your CSS rules but putting CSS rules in different spots can make your stylesheet less predictable than what you’d want to go for. Maintainability problems will most likely arise when the CSS selectors cascade – this applies to other CSS pre-processors such as Sass and LESS as well. In most projects the SASS code follows the DOM structure – this means that the CSS structure is linked to the DOM. This can result in larger file sizes and the component becomes non-reusable. If the markup needs to be changed or moved, the CSS rule needs to be changed as well. Using ID selectors could lead to maintainability problems. At this point most developers would try to write a stylesheet with very specific rules – since there can be only one single element using the same ID, these are not reusable. Other aspects include ever-longer CSS files – some have over 1000 lines of code.   Think Components Think about the fact that a web page is composed of multiple components. Let’s take a services page as an example. The page is composed out of three components: Services is the entire services section Container is simply a generic container that limits size and adds some padding Service-item is a single service item   Styling VS layouting In order to make a component easily reusable and to make the CSS layout more manageable, the concepts of styling and layouting need to be differentiated. Styling means changing paddings, borders, fonts and colours. All these changes take place inside the component itself and hence do not interfere with the layout or structure of other components. The following elements fall into styling: Text align Padding Font Colour Border Background   Layouting on the other hand implies moving elements around your page and sizing them – this can affect other elements on the page. The following fall into the layouting category: Height and width Left, bottom, right or top Transform Position Margin Float Clear   Do not layout yourself You shouldn’t layout yourself because a component should style itself but give up the task of layouting to its parent. What this means is that the component doesn’t need to float on its own or have its own margins but the parent-component should layout its child components. This makes it much easier to build responsive user interfaces because the layout itself becomes more predictable. There’s no need to worry if two components look good on a screen if the parent component layouts its child component appropriately.   Components should be simple If your components have too many lines of code, you should create a different component to handle it all. In the same time, having too many components can turn into a maintenance burden – hence the option to create sub-components. Nesting subcomponents together is not allowed, so if the subcomponent needs to have its own sub-components then it should become a top level component. These rules are enforced in order to keep components simple and working smooth.   Component inheritance Sometimes a component is a specialization of another component. Adding modifier classes to the HTML markup could make it redundant and not friendly to refactoring. By using Sass we can use @extend in order to extend other components. Eg: The “services” component is a specialization of an inverted section. In this case we use @extend only for component inheritance, which is a valid use case. It’s possible to use either @extend or @mixin as long as both are used in a controlled manner. The bad thing about using @extend is that it won’t necessarily work for generated CSS files and you can’t extend from inside a @media query. If it needs to be done, the CSS structure needs to be reworked.   File structure CSS files with a large amount of lines are very hard to work with. In some cases, depending on the project’s complexity, it may be possible to put all the CSS code in a single file. For larger projects it may necessary to organize assets via controller.   Directory structure Having stylesheets with a large number of files can be very difficult to handle, so grouping them accordingly is crucial – keep in mind that each project is different and each directory structure needs to be different. Try to find a directory structure that fits your current project. Sometimes you can put all the CSS in a single directory but at other times you need to organized them by type, media type or screen size.   Wireframe – Design – Wireframe Sometimes it’s a good idea to draw another wireframe from the already finished design. But why? With the wireframe in place we’re able to look at the page as a whole, not just little portions. Naming and componentization – viewing the whole page in a glance lets you name sections easily Hierarchy and structure – it’s easier to structure your pages into sections or subsections with the wireframe in place Margins – with the wireframe you can plan your paddings and margins more efficiently   Responsive design Breakpoints can be defined for desktop, tablet, mobiles or they can be created based on content. Creating breakpoints based on content means that the site will look good on any screen size. Start with the smallest screen size and resize your window accordingly. When a component looks out of place, modify it and create a breakpoint there. Repeat the process until you reach the largest screen size you want to support.   Conclusions These are the basic ways to write more predictable and maintainable stylesheets – by applying these tips you’ll save yourself a lot of tweak work in the long run. Happy coding!   ... Read more
Adrian Ababei / May 02'2016
How to Choose the Best OS for Web Development: The 4 Major Operating Systems’ Pros and Cons
Over the years we’ve heard plenty of arguments regarding the best OS for web development, hence we’ve came up with a list of advantages and disadvantages of the most popuar operating systems – Windows, Linux and Mac OS.   Features available on all platforms Most developer tools, including IDE’s are available on all platforms Most platforms can run another platform within themselves through a 3rd party app All platforms can use Git Most languages can be used on all platforms   Windows OS Features Most services or products are specifically designed for Windows Some servers use this platform It’s not POSIX Has plenty of security issues Can use Photoshop Very few useful apps are pre-installed Major upgrades are slow – 2-3 in a decade   Mac OS Features Can use Photoshop Too many features are pay-to-use Is POSIX Visually stunning Major upgrades are often – every few years and easily installed Very few servers use this platform Many useful apps are pre-installed Installs programs through the GUI by default   Linux OS Features Many servers use a variation of this platform Is POSIX Offers Photoshop alternatives but no Photoshop Is not user friendly Most apps are free or open source Installs apps and programs through CLI by default Has a few useful applications pre-installed Major upgrades are often, every one or two years   Conclusions: Which Is The Best OS for Web Development After All? All operating systems have some advantages and disadvantages and in the end it’s a good idea to pick the one you feel most comfortable with or the one which benefits you the most. ... Read more
Adrian Ababei / Apr 29'2016
What Are the Top Web Development Tools for Mac OS X that Shouldn’t Miss From Your Toolkit?
Every expert from every field has his or her own tools of the trade and web development is no different – web development tools are one of the most important factors to every project and these tools could mean the difference between finishing your project on time or passing multiple deadlines. Luckily enough, plenty of top web development tools are available for just about every platform. Here is our list of OS X apps which you should include in your web development tools box:   Browsers for web development One of the most important tools for web development is a browser – you’ll need to view your website after you created it right? But it’s not so simple – you will need to test your website for many browser versions, including beta and nightly builds. With that taken into consideration, you’ll most likely need Opera Next, Chromium, Chrome Canary, Firefox Aurora, and Firefox Nightly.   Koala Koala, apart from its cute name, is another nifty web development tool which is used to compile CoffeeScript, Compass, Sass, and LESS into a browser-compliant format. If you’re using any of these techs, Koala is definitely a must.   Anvil for web development Anvil is an interesting free app which allows web developers to create .dev domains. You’ll see it as a new icon in the OS X menu bar and you can turn it on or off, create domains or add your projects to it. If you’re looking for a tiny web development tool to manage or work on your local websites with, Anvil is perfect.   Keka When handling multiple files, you need a reliable compression service to help you along. Most web developers may use ortar, rar or zip but Mac has its own built-in feature to extract and manage these formats – this service is rather limited so you’re better off with Keka. Keka is a free open source OS X app for file compression and extraction. Keka supports zip, rar, ortar, ISO, DMG, Tar, Gzip, 7z and it can extract to PAX, CAB, EXE and RAR formats. Keka allows you to split compressed files into different parts of specified sizes, apply password restrictions or automatically delete source files after extraction or compression.   Web development & Web Sharing Since Apple removed the Web Sharing option from the OS X system preference, you might want to install the Web Sharing plugin. This little plugin will allow you to host local websites under the local host address. Once you install it you’ll be able to see a new panel in System Preferences – here you’ll be able to switch web sharing off or on.   File compression, One of The Very Top Web Development Tools for Mac OS X We talked about Keka before but there are two ways you can use it to compress files. You can either download this small web development tool and install the services contextual menu or you can drag and drop your files directly into the Keka app window.   Sequel Pro MySQL is one of the most popular databases in the world – plenty of websites rely on MySQL for storing and managing databases. If you are using OS X, Sequel Pro is a must-have for web development. It’s a native OS X app built in Cocoa and it also features a nice and friendly GUI. With Sequel Pro you can create, filter databases, import, export, remove, create users and execute MySQL queries.   The iPhone Emulator All web developers need to take mobile users into account when building their websites, hence the need for a web development tool that can be used to test websites for specific platforms. Devs can use physical tablets or phones or they can go for the easier option – a simulator like iPhone Simulator. All you need to do is just install Xcode from the AppStore and you’re done – you have another web development tool in your little toolbox.   Icons8 If you’re looking to use icons, Icons8 is one of the top web development tools that you can use. Just install Icons8 and you’ll be able to search through its over 2800 collections of icons. Once you find something you like, you’ll be able to copy it to Finder, Xcode or Photoshop.   Github and SourceTree Even if you’re building a small website or a presentation website, you’ll need a control version system to track your revisions and changes to the project’s code. Github is the most popular service for version control and you can install it on OS X as well. SourceTree is another mentionable service – both of these services are the backbone of any respectable web development agency.   Poedit Poedit is the best web development tool you can use for translating websites into multiple languages. Not only that but you can translate plugins and Wordpress Themes as well with this little app.   Automator Automator is a web development tool that’s pre-installed with OS X. This little app allows users to automate tasks such as cropping multiple images at once, creating thumbnail images, changing file extensions and renaming files in batch.   Dash Dash collects documentation for a lot of the popular programming languages, including LESS, Sass, jQUery, CSS3 and HTML5. Users can search through code snippets, functions, syntax, and other valuable information. ... Read more
Adrian Ababei / Apr 28'2016
Antitrust Charges Against Abusive Android
The European Commission on Wednesday charged that Google breached EU antitrust rules by seeking to maintain and expand the dominance of its Android operating system. "A competitive mobile Internet sector is increasingly important for consumers and businesses in Europe," said the EC's antitrust chief, Margrethe Vestager. "Based on our investigation thus far," she continued, "we believe that Google's behavior denies consumers a wider choice of mobile apps and services and stands in the way of innovation by other players, in breach of EU antitrust rules." Throttling Competition In its statement of objections, the commission alleged Google violated EU antitrust rules in the following ways: • Requiring manufacturers to preinstall Google Search and Google's Chrome browser and requiring them to set Google Search as default search service on their devices, as a condition to license certain Google proprietary apps; • Preventing manufacturers from selling smart mobile devices running on competing operating systems based on Android open source code; and • Giving financial incentives to manufacturers and mobile network operators on condition that they exclusively preinstall Google Search on their devices. Google's business practices may lead to a further consolidation of the company's dominant position in general Internet search services, the commission noted. Those practices may affect the ability of other mobile browsers to compete with Google Chrome. They hinder the development of operating systems based on Android open source code and the opportunities they would offer for the development of new apps and services, the commission said. Internet Explorer Redux The commission's action is a response to complaints it has received from Google's competitors in Europe. In 2013, FairSearch Europe, a group that includes Oracle and Nokia, filed a complaint with the EC about Android. In 2014, Aptoide also filed a complaint. Consumer Watchdog is another group supporting an investigation into Google's Android dominance. "This is the same kind of thing that Microsoft did when it bundled its browser in with its operating system," said John M. Simpson, director of Consumer Watchdog's Privacy Project. "While Google makes Android freely available, it's got strings that come with it that unfairly favor Google's apps if you're going to use the Android software," he told the E-Commerce Times. "Consumers can go and find other apps and install them," Simpson added, "but that gives Google a leg up on Android devices." Unfortunate Action Google is not stifling the Android marketplace, according to Daniel Castro, a senior analyst with the Information Technology & Innovation Foundation. "This is an unfortunate action because it does not seem like there has been any consumer harm from the allegations and there is strong competition in the mobile OS environment," he told the E-Commerce Times. "It is hard to see how Google can lock out any competitors since the switching costs of installing a new app are so minimal -- 30 seconds to download and install a rival app," Castro said. One reason Android enjoys widespread popularity is its openness, he explained, which allows for experimentation while also providing standardized features across platforms for users. "It would be unfortunate if the EU punishes Google for actions it takes that create better consumer experiences because it believes these actions are anticompetitive," Castro said. "This would create a risk," he continued, "that tech companies would design products to meet arcane competition regulations rather than consumer needs." U.S. Probe Since the Europeans announced their initial probe into Google's Android monopoly last year, there have been murmurs of a similar investigation by the U.S. Federal Trade Commission. In September, for example, Bloomberg reported that the FTC had reached an agreement with the U.S. Justice Department to investigate whether or not Google was stifling access to Android by its competitors. That wouldn't be the first time the FTC probed Google. It looked into Google's search dominance in 2011 and 2012. That investigation ended in 2013 with Google changing some of its business practices. However, last year The Wall Street Journal reported that the commissionignored the advice of key staffers to sue Google because they believed it was doing harm to consumers and innovation. "The FTC completely blew its investigation on the search monopoly," Consumer Watch's Simpson said. "They completely failed to do their job there." In 2014, Google spent US$16.8 million on lobbying in Washington, he added. "You don't spend money like drunken sailors on lobbying unless you see results." Source: http://www.technewsworld.com ... Read more
Adrian Ababei / Apr 27'2016
How to Improve the Collaboration Between Designers and Developers: Simple Tips on Preparing Design for Coders
As we all know, programmers and designers don’t have a lot in common in terms of workflow or the software used to complete their tasks. Communication and synergy between programmers and designers can either make or break a project. How can you improve your work with a programmer? Implementing a clear workflow and respecting it is crucial – both parties need to provide feedback as work continues and a clear plan of action needs to be set in place for the current project. Start planning your project Simply shipping your design work over to the programmer may work on very small tasks or smaller projects but for larger, more complex projects it could turn into a disaster. The workflow needs to be accompanied by careful planning. Your average plan should include a schedule estimate and an approximate cost. If you’re building the project for a client, cost estimates are mandatory. Project planning needs to also account for how an optimal collaboration can be reached – the small details count in this phase. Prepare your design for coding Instead of simply handing over your design work along with a few requirements to the programmer and waiting for the results to appear, designers need to also focus on things which will enable the programmers to help them in the long run. Here are a few aspects and tips you need to take into consideration when producing your design: Your key objective is Pixel Perfect – If you want your programmer to implement your design work properly, you need to provide him with exact details – elements such as colours, style, fonts, margins and padding need to be specified exactly before the programmer can begin his portion of work. Keep in mind that by doing this you eliminate the need for future changes or revisions – as a result the overall cost of your project will be reduced. Follow Photoshop Etiquette – Designers should properly name layers and structure their files accordingly. Images need to be aligned and the programmer needs to be provided with plenty of information – it goes a long way in building your project and speeding up your workflow. Keep in touch with the coder – It’s a good idea to maintain contact with the coder on a regular basis and ensure he has all the information he needs to properly do his portion of the project. Developers really appreciate it when you provide your support. Designs for interactions are important – These designs can be a great help to your coder as well. Examples can include the intended use of sliders, button hover states, dropdown menus and others. Research on the technology used – You’ll get a better understanding of what’s feasible from a programming point by keeping up to speed with the latest tech trends. Sometimes designers may ask for features which are simply impossible to implement. Don’t rush, time is plenty Planning ahead, coordinating your work and providing clients with meaningful estimates will save you a lot of time in the long run. Transparency will help all people involved to get a better understanding of the overall project and speed up the workflow. ... Read more
Adrian Ababei / Apr 25'2016
Best Photoshop Plugin for Web Design
Get a Photoshop plugin that will help you perfect your work as a web designer! Here is the list of 10 amazing Photoshop addons: Codly Codly can automatically code your Photoshop mobile-design work, saving you lots of time and effort in development. With Codly you’ll have plenty of room for experimentation and new ideas. Codly’s interface is very intuitive, featuring a simple drag and drop system. This platform can generate code for BlackBerry, Windows 10, Android XML and of course iOS. Random User Generator Random User Generator is a free open source API which generates placeholder user data for forms and other similar structures. Random User Generator’s tagline is „Like Lorem Ipsum, but for people”. Data can include passwords, phone numbers, addresses, birthdays, emails and names. Suitcase Fusion 6 Suitcase Fusion 6 is the perfect Photoshop plugin for Google font lovers. This little add-on will keep your fonts perfectly organized in Photoshop. You can compare fonts and preview them before implementing, which can save you a lot of time. Retinize It Retinize It allows designers to slice and export from certain groups or layers directly as assets. Not only that but this plugin offers designers the option to magnify smart objects or shapes by 200-300%, making it easier to prepare the image for iOS displays and retina. PSD Cleaner PSD Cleaner will organize your PSD files in an instant. Browsing for empty layers or missing names is no longer a drag with this neat little add-on. PSD Cleaner will set you back $19.99 but you can work without any distractions. LayerCraft LayerCraft can help you export individual assets to Photoshop layers. You can export directly to Android or iOS, with options such as trimming, duplicating, removing empty pixels and scaling up to 200% or down to 50%. Photoshop Plugin for Prototyping Usually, after you create a mockup in Adobe Photoshop you need to build it again from scratch for prototyping purposes. The UXPin app solves this issue by allowing complete integration. Just export your PSDs straight into the platform and then simply add interactions to your mockup for feedback purposes. This platform also preserves all your layers for prototyping. Oven Oven is a neat little Photoshop plugin that helps with other plugins – When you want to generate image assets from layers through the use of other plugins for web designers, you’ll need to name them appropriately before export images. Oven speeds up the process by baking your multiple layers properly. You can export in either .png or .jpg for Android or iOS. Oven also features a duplicate option which keeps your original label names intact. Perspective Mockups We all know that Photoshop CS6 offers some stunning presentation documents and deliverables. Perspective Mockups can make your PS files even better – this plugin allows you to stack, tilt, rotate or layer the perspective of the file according to your needs and preferences. GuideGuide This plugin allows designers to create highly customizable guides extremely fast. GuideGuide is a very popular Adobe Photoshop plugin – you can create guides with multiple options based on the selected layers, artboards and canvases. You can create instant guides for already designed selections – secondary options such as duplicating or sharing are also available. ... Read more
Adrian Ababei / Apr 22'2016
Pagekit 1.0
If you’ve been following web development over the past few years, you will have noticed how fast it has evolved. The understanding of PHP and JavaScript has shifted, new frameworks have emerged, and the package manager Composer provides an easy way to integrate different components into applications. All this has lead to a new generation of content management systems that are built on modern principles, shed old ballast and simplify the lives of both developers and end users. One of them is Pagekit, an outstanding new CMS developed by YOOtheme, a company that has been creating themes and extensions for Joomla and WordPress since 2007. Pagekit is a modular and lightweight CMS built with Vue.js and Symfony components. Its focus lies on being intuitive for end-users on the one hand and a modern codebase that provides powerful tools for developers on the other. Apart from menus, pages, and widgets, Pagekit features a powerful user and permission system as well as a blogging extension, including a sophisticated comment function. Since the release of its first Alpha version in 2014, Pagekit has been supported by a rapidly growing community on Github, so that in spring 2016 it finally leaves its beta phase and hits the screens. Pagekit’s User Interface Pagekit’s simple user interface lets even beginners start their first website without any struggles. The administration is inspired by Google’s Material Design guidelines and provides a clean, intuitive and mobile-friendly experience for end users, featuring link and media pickers and a lot of one-click functionalities. It is limited to the essentials without compromising features that CMS users have come to expect. When logging into your Pagekit website, the first thing you’ll see is the Dashboard. It provides access to all areas of the administration and allows you to install useful widgets, like Google Analytics, to get an overview of your site’s activity and visitor data. The Dashboard leads you to the hierarchical Site Tree view. Here you can organize all your pages, menus, and widgets in a unified drag and drop interface. It is the central place to manage content in Pagekit and drastically simplifies creating websites. You can write the content of static pages, widgets and the built-in blog extension using a wonderful HTML & Markdown editor. It features syntax highlighting as well as real-time preview and has access to Pagekit’s file manager to upload media right into your content. The Pagekit Marketplace Pagekit features a built-in Marketplace. Users can install themes and extensions in one click without having to leave the administration area while developers have the chance to distribute their products to a global community. Since extensibility is one of the core ideas of Pagekit, its modular architecture makes it such a great base for interested developers. Right now, four official themes are at hand, including One, Pagekit’s default theme. The Marketplace also delivers a handful of in-house extensions: Google Analytics, a syntax highlighter, TinyMCE and the pre-bundled Blog. A number of third party themes and extensions are already available as well, for example, a form builder, a portfolio, and social media extensions. To help developers create their products, the Marketplace offers blueprints for themes and extensions. The idea is for the Marketplace to become a thriving theme and extension ecosystem. The Modern Architecture of Pagekit Pagekit is best friends with Vue.js, the new hot JavaScript framework you may already have heard of. Vue offers functionalities to easily build interactive interfaces. It takes care of updating models and views on the client via its two-way data binding. But there is more to it than having nice interactive views. By utilizing Vue’s concept of web components, we can build a client library for reusable components, like the media picker that can be used from any extension. What looks good on the interface level, should also extend to a strong foundation. Since extensibility is one of the core ideas of Pagekit, the team explored what “modularity” really means. On the code level, nearly everything is a Module object: a theme, an extension, a widget and the core functionality itself. This keeps code complexity to a minimum, as developers can work with the same concept in many different places. Pagekit is extended through themes and extensions. They can make a small or big change to Pagekit’s functionality as well as make it look beautiful. The CMS manages them using the power of Composer. Install packages right from the browser, using the command line or by requiring them in your project definition. No need to distribute the package dependencies with your extensions. Pagekit will get and share the required libraries during the package’s installation. Pagekit Community and Resources Pagekit is an open source project and published under MIT license. So if you want to get your hands dirty, head over to Github and take a look under Pagekit’s hood. Everyone is invited to contribute. A number of useful resources are already available to help you find your way around Pagekit and even to start developing your themes and extensions. There are a lot of CMSes out there that suit different needs. But we suggest you give the new kid on the block a try. Its lightness, simplicity, and beautiful Material Deign user interface make working with Pagekit a true delight. It provides great tools for developers, and its modular architecture will make you itch to start creating cool extensions. We see a bright future ahead for Pagekit. Source: https://speckyboy.com... Read more
Adrian Ababei / Apr 21'2016
News Alert: You Can Now Install and Use Bash Shell on Windows 10
Here’s something new: Microsoft Build announced that it is bringing GNU project’s Bash shell to Windows. Bash or Bourne Again Shell has been a standard OS X on many Linux distribution systems but the default terminal for Windows developers is PowerShell, produced by Microsoft itself. This means that developers will be able to write their .sh Bash scripts on Windows as well. The new system will work through a Linux subsystem in Windows 10 that Microsoft worked on with Canonical. Canonical founder Mark Shuttleworth states: “The native availability of a full Ubuntu environment on Windows, without virtualization or emulation, is a milestone that defies convention and a gateway to fascinatingly unfamiliar territory,” “In our journey to bring free software to the widest possible audience, this is not a moment we could have predicted. Nevertheless we are delighted to stand behind Ubuntu for Windows, committed to addressing the needs of Windows developers exploring Linux in this amazing new way, and excited at the possibilities heralded by this unexpected turn of events.”, he adds. It gets better The idea behind moving the Bash shell to Windows 10 is to make Windows a better operating system for developers who want to target other platforms than Microsoft’s. Satya Nadella, the new CEO of Microsoft is actively pushing for projects that target all platforms and developers, not just Windows. A few years ago it was unthinkable for Microsoft to work together with a rival operating system such as Linux but now the company offers Linux support on Azure and plans to bring SQL Server to Linux in the near future as well. Bash will become available with the Windows 10 Anniversary Update but Windows Insiders can try it out before that. Microsoft is planning to bring other shells to Windows as well, which is a great thing for developers worldwide.   ... Read more
Adrian Ababei / Apr 19'2016
App Development – Which language to pick? Ruby’s your best bet!
Picking a programming language for app development can be a real challenge nowadays since there’s an endless choice of software to choose from. Different programming languages have different advantages and disadvantages, especially when it comes to app development, which requires certain specific features. App development specialists can pick from one of the 3-4 more popular programing languages but all these have different approaches to solving problems. As a general rule, you should go with a language that provides good tools for scalability, optimisation and maintainability.   Ruby for App development Ruby is a favourite programming language for app development and web development – It can be used in many different areas such as writing scripts, apps, games, research, prototyping and administration. HP, NASA, Cisco and many other companies use Ruby for their tech needs. Apart from that, Ruby also works on Apache, nginx and there are even web servers written in Ruby. Ruby was first created in 1995 by combining different languages such as Smalltalk, Lisp and Perl into one well balanced highly reliable programming language. One interesting aspect is that the program code is stored in plain text, which can be an asset.   Ruby’s a clean app development programming language Ruby’s praised for its cleanliness and the following of certain principles which make app development easier: There’s no need to repeat code – by simply writing it and putting it in the right place, Ruby spares developers from unnecessary work. Conventions over configuration – with Ruby, there are plenty of methods already written and available for use but in certain cases they can be rewritten to fit a different purpose. This makes writing code much easier and clearer.   Objects With Ruby, everything is focused on the object. This is called object-oriented programming meaning that each piece of code can have its own actions and properties. Here is an example of code in which an action is applied to a number: 10.256.round # we will get a round number 10 In most languages primitive data types such as numbers are not objects – Ruby allows developers to define object variables and methods for all data types which in turn simplifies Ruby’s use since the rules applied to objects can be applied to the entire Ruby.   Ruby is flexible Ruby’s owes much of its popularity due to its flexibility – it allows users to modify, override or delete basic parts as needed. Ruby’s main focus is freedom for the programmer – this is one of the reasons why it’s such a great app development language. Ruby supports only single inheritance and offers the concept of modules where modules are collections of methods. Classes can mix in a module and receive all its methods. Eg: Any class may mix in enumerable module which in turn adds a number of methods that are used to create cycles: class Collection include Enumerable end   Portability Although it was developed on Linux/GNU, Ruby offers high portability – you can work on Windows XP/7, Mac OS X, UNIX and others. Another benefit is that you can work with the jQuery JavaScript framework, MVC, TDD, design demplates and ORM (ActiveRecord).   Community support Community support is one of the most important strengths of Ruby. You can publish your own modules in the open access section of Ruby’s website or ask for help with your project. Thanks to Ruby’s community, thousands of solutions and code bits are available for users just one click away. This is a treasure trove for programmers building app development projects. Other useful things include authentication and authorization systems, test data, share buttons for social networks, e-mail sending systems and many others are waiting to be implemented. If you need to modify it, you can do it with ease and share it with the community.   Conclusions All programming languages have strengths and weaknesses but Ruby is our top favourite due to its ease of use and versatility, especially when app development projects are involved. ... Read more
Adrian Ababei / Apr 18'2016