Altabel Group's Blog

Archive for the ‘Computing’ Category

In the rapidly changing world of IT only those people win who are developing all the time: if you stop — you will lose. Besides general philosophy of life, it’s also true for CMS. Trying to keep up with the time the developers of CMS Drupal have released a new version of Drupal 8.

Many improvements have been made in the interface by default which makes it easier for non- professional users to use CMS. There is practically everything you need to build the “mid-level” web site without using additional modules. So, let’s observe some changes:

• From the very beginning probably the most sensational news was the transfer to Symfony 2 components, which greatly simplified the usage for those developers who are already familiar with it, but probably scared off those who are used to functional programming in WordPress. However, it should be noted that every time the page is loaded in Drupal 7, all enabled modules are also uploaded, even if we don’t need some modules on certain pages, which leads to unnecessary uploading and waiting time increasing for the user who is carefully studying the website. Implementing the basic principles of Symphony, Drupal 8 downloads only those modules that you need for a particular page and nothing more. It accelerates page loading for your visitors and probably reduces memory consumption.
 

 
• The introduction of HTML5 can be attributed to a significant improvement in comparison with XHTML in Drupal 7. Sites that are made by using HTML5 have a better structure and functionality. HTML5 provides better work for a user either on a computer or on a mobile device.

• Anyone who has ever run a website knows that it is better to use a computer or a laptop as most features of the admin section would require the resources of the computer and not work on mobile devices. The Drupal 8 Mobile Initiative is a concerted effort to make Drupal 8 a first-class mobile platform. Not only the admin section works on mobile, but the templates for Drupal 8 are also adapted for devices. It’s more comfortable not only for administrators but also for visitors who use gadgets.

• One more pleasant news was the improvement of multilingualism. Multi Language Module enables its users to create phrases in many languages and display them on your website. It helps developers and users to implement a multilingual website.

• Drupal 8 contains one of the fastest and most popular template engines. Twig is a popular templating engine for PHP, which opens the door to more robust, scalable and secure themes. It should be noted that Twig is fast, secure and flexible.

Fast: Twig compiles templates into optimized PHP code. The performance losses are reduced to the minimum in comparison with an ordinary PHP code.

Secure: Twig has a sandbox mode to test untrusted template code. It makes possible to use Twig as a template language for applications where users may modify the template design.

Flexible: Twig has a flexible vocabulary and syntax. It enables developers to define their own tags and filters and create their own DSL (domain specific language).

• With Drupal 8 you have an opportunity to use the Views without your developer. Views contain a set of parameters that determine which content appears on the page and choose the fields to display, field order, etc., In Drupal 7 Views module was a separate module and depended on the CT Tools Suite module. Development of the Views for Drupal (VDC Initiative) enabled to embed Views in Drupal core 8, so that it appeared immediately after installation. It means that Views has a better integration. Besides, Drupal 8 has made the Views much easier, now a site administrator can delegate the work with the Views to technical specialists, as it does not require complex skills.

These are just some of the changes that came with Drupal 8. It’s a fantastic platform for developing a wide range of sites, from simple to extremely complex.

Remember to feed back by sharing your discoveries and creations in using Drupal 8!

 

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

The Go Programming Language (Go) is an open-source programming language sponsored by Google and created by Robert Griesemer, Rob Pike, and Ken Thompson that makes it easy to build simple, reliable, and efficient software.

Go has gained popularity since it was first announced in 2009, and it’s now being used by many companies worldwide and for a variety of applications; Dropbox, Google, SoundCloud,  CloudFlare,  Docker and Cloud Foundry are some of the Go programming users.

go

Like any technology, though, it has its adherents and critics. Here are some key benefits and perceived drawbacks of the language as told by experts familiar with it.

Pros:

  • It is fast. And not only fast in the sense that programs written in it run fast when compared to other common languages; but also fast in the sense that its compiler can compile projects in the blink of an eye. You can even edit and run Go programs directly on the Web.
  • It is a garbage-collected language. This puts less pressure on the developer to do memory management, as the language itself takes care of most of the grunt work needed.
  • It has built-in concurrency, which allows parallelism in an easier way than is possible in other languages. Go has the concept of goroutines to start concurrent work and the concept of channels to permit both communication and synchronization.
  • Go has documentation as a standard feature. That makes it easier for developers to document their code and generate human-readable data out of source code comments.
  • Go has a rich standard library which covers a lot of areas. In fact, Go is probably the only language that can claim to have a fully working Web server as part of its standard library.
  • Go’s built-in build system is both elegant and simple. No need to mess with build configurations or makefiles.

Cons:

  • Go is still a very young language and has a very young ecosystem. This means there aren’t many libraries for it yet, leaving developers to write libraries themselves. There is also a shortage of books and online courses on the language.
  • Go is simple to the point of being superficial. Go’s simplicity is mostly superficial, and in its effort to find simplicity, it threw away decades of valuable programming language progress.
  • Although Go is a high-level language, it still has low-level features such as pointer-arithmetic which does not rule out the chance of doing systems and OS programming.
  • Go’s tooling is really weird, on the surface it has some really nice tools, but a lot of them, when you start using them, quickly show their limitations.
  • It is still not so easy to learn Go and it’s difficult to handle errors in it.

What is your attitude to Go? Is it worth learning? What do you think are Go’s advantages and disadvantages? Can you tell us about a real use you have given to this programming language? Please, feel free to share your thoughts 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

In the history of computing first Java appeared, then close on its heels came JavaScript. The names made them seem like conjoined twins newly detached, but they couldn’t be more different. One of them compiled and statically typed; the other interpreted and dynamically typed. That’s only the beginning of the technical differences between these two wildly distinct languages that have since shifted onto a collision course of sorts, thanks to Node.js.

If you’re old enough to have been around back then, you might remember Java’s early, epic peak. It left the labs, and its hype meter pinned. Everyone saw it as a revolution that would stop at nothing less than a total takeover of computing. That prediction ended up being only partially correct. Today, Java dominates Android phones, enterprise computing, and some embedded worlds like Blu-ray disks.

For all its success, though, Java never established much traction on the desktop or in the browser. People touted the power of applets and Java-based tools, but gunk always glitches up these combinations. Servers became Java’s sweet spot.

Meanwhile, what programmers initially mistook as the dumb twin has come into its own. Sure, JavaScript tagged along for a few years as HTML and the Web pulled a Borg on the world. But that changed with AJAX. Suddenly, the dumb twin had power.

Then Node.js was spawned, turning developers’ heads with its speed. Not only was JavaScript faster on the server than anyone had expected, but it was often faster than Java and other options. Its steady diet of small, quick, endless requests for data have since made Node.js more common, as Web pages have grown more dynamic.

While it may have been unthinkable 20 years ago, the quasi-twins are now locked in a battle for control of the programming world. On one side are the deep foundations of solid engineering and architecture. On the other side are simplicity and ubiquity. Will the old-school compiler-driven world of Java hold its ground, or will the speed and flexibility of Node.js help JavaScript continue to gobble up everything in its path?

Where Java wins:

1. Rock-solid foundation

I can hear the developers laughing. Some may even be dying of heart failure. Yes, Java has glitches and bugs, but relatively speaking, it’s the Rock of Gibraltar. The same faith in Node.js is many years off. In fact, it may be decades before the JavaScript crew writes nearly as many regression tests as Sun/Oracle developed to test the Java Virtual Machine. When you boot up a JVM, you get 20 years of experience from a solid curator determined to dominate the enterprise server. When you start up JavaScript, you get the work of an often cantankerous coalition that sometimes wants to collaborate and sometimes wants to use the JavaScript standard to launch passive-aggressive attacks.

2. Better IDEs

Java developers have Eclipse, NetBeans, or IntelliJ, three top-notch tools that are well-integrated with debuggers, decompilers, and servers. Each has years of development, dedicated users, and solid ecosystems filled with plug-ins.

Meanwhile, most Node.js developers type words into the command line and code into their favorite text editor. Some use Eclipse or Visual Studio, both of which support Node.js. Of course, the surge of interest in Node.js means new tools are arriving, some of which, offer intriguing approaches, but they’re still a long way from being as complete as Eclipse.

Of course, if you’re looking for an IDE that edits and juggles tools, the new tools that support Node.js are good enough. But if you ask your IDE to let you edit while you operate on the running source code like a heart surgeon slices open a chest, well, Java tools are much more powerful. It’s all there, and it’s all local.

3. Remote debugging

Java boasts incredible tools for monitoring clusters of machines. There are deep hooks into the JVM and elaborate profiling tools to help identify bottlenecks and failures. The Java enterprise stack runs some of the most sophisticated servers on the planet, and the companies that use those servers have demanded the very best in telemetry. All of these monitoring and debugging tools are quite mature and ready for you to deploy.

4. Libraries

There is a huge collection of libraries available in Java, and they offer some of the most serious work around. Text indexing tools like Lucene and computer vision toolkits like OpenCV are two examples of great open source projects that are ready to be the foundation of a serious project. There are plenty of libraries written in JavaScript and some of them are amazing, but the depth and quality of the Java code base is superior.

5. Threads

Fast code is great, but it’s usually more important that it be correct. Here is where Java’s extra features make sense.

Java’s Web servers are multithreaded. Creating multiple threads may take time and memory, but it pays off. If one thread deadlocks, the others continue. If one thread requires longer computation, the other threads aren’t starved for attention (usually).

If one Node.js request runs too slowly, everything slows down. There’s only one thread in Node.js, and it will get to your event when it’s good and ready. It may look superfast, but underneath it uses the same architecture as a one-window post office in the week before Christmas.

There have been decades of work devoted to building smart operating systems that can juggle many different processes at the same time. Why go back in time to the ’60s when computers could handle only one thread?

Where Node wins:

1. Ubiquity

Thanks to Node.js, JavaScript finds a home on the server and in the browser. Code you write for one will more than likely run the same way on both. Nothing is guaranteed in life, but this is as close as it gets in the computer business. It’s much easier to stick with JavaScript for both sides of the client/server divide than it is to write something once in Java and again in JavaScript, which you would likely need to do if you decided to move business logic you wrote in Java for the server to the browser. Or maybe the boss will insist that the logic you built for the browser be moved to the server. In either direction, Node.js and JavaScript make it much easier to migrate code.

2. Build process simplified by using same language

Complicated build tools like Ant and Maven have revolutionized Java programming. But there’s only one issue. You write the specification in XML, a data format that wasn’t designed to support programming logic. Sure, it’s relatively easy to express branching with nested tags, but there’s still something annoying about switching gears from Java to XML merely to build something.

3. Database queries

Queries for some of the newer databases, like CouchDB, are written in JavaScript. Mixing Node.js and CouchDB requires no gear-shifting, let alone any need to remember syntax differences.
Meanwhile, many Java developers use SQL. Even when they use the Java DB (formerly Derby), a database written in Java for Java developers, they write their queries in SQL. You would think they would simply call Java methods, but you’d be wrong. You have to write your database code in SQL, then let Derby parse the SQL. It’s a nice language, but it’s completely different and many development teams need different people to write SQL and Java.

4. JSON

When databases spit out answers, Java goes to elaborate lengths to turn the results into Java objects. Developers will argue for hours about POJO mappings, Hibernate, and other tools. Configuring them can take hours or even days. Eventually, the Java code gets Java objects after all of the conversion.
Many Web services and databases return data in JSON, a natural part of JavaScript. The format is now so common and useful that many Java developers use the JSON formats, so a number of good JSON parsers are available as Java libraries as well. But JSON is part of the foundation of JavaScript. You don’t need libraries. It’s all there and ready to go.

5. Speed

People love to praise the speed of Node.js. The data comes in and the answers come out like lightning. Node.js doesn’t mess around with setting up separate threads with all of the locking headaches. There’s no overhead to slow down anything. You write simple code and Node.js takes the right step as quickly as possible.

This praise comes with a caveat. Your Node.js code better be simple and it better work correctly. If it deadlocks, the entire server could lock up. Operating system developers have pulled their hair out creating safety nets that can withstand programming mistakes, but Node.js throws away these nets.

Where both win: Cross-compiling from one to the other

The debate whether to use Java or Node.js on your servers can and will go on for years. As opposed to most debates, however, we can have it both ways. Java can be cross-compiled into JavaScript. Google does this frequently with Google Web Toolkit, and some of its most popular websites have Java code running in them — Java that was translated into JavaScript.

What is your opinion on what to choose Java or Node.js?

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: