Dev Depot: Moving Beyond Php With Node.js

According to software engineer Constantine Aaron Cois, the web is changing. “The web used to be about consumption: Viewing web pages, watching videos, looking at pictures of cats. Of course, its still about pictures of cats, but the web has become more about interaction,” Cois stated. “Users around the world want to interact with each other, and they want to do it in real time. Chat, gaming, constant social media updates, collaboration — each of these features requires real time communication between users, clients, and servers across the web.”

“What’s more,” says Cois, “this real-time communication needs to happen at massive scale, supporting hundreds, thousands, even millions of users.”

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient and perfectly suited for building data-intensive real-time applications running across distributed devices.

Enter Node.js (www.nodejs.org), a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications to serve the needs of today’s web user.

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient and perfectly suited for building data-intensive real-time applications running across distributed devices. The Node development team offers a simple “hello world” web server example to show that many client connections can be handled concurrently, since each connection is only a small heap allocation.

“Node tells the operating system (through epoll, kqueue, /dev/poll, or select) that it should be notified when a new connection is made, and then it goes to sleep,” a Node rep explains. “If someone new connects, then it executes the callback.”

Contrast this to the more common concurrency model that employs OS thread-based networking, which is often relatively inefficient and very difficult to use, being plagued by process blocks. With Node, nothing blocks, so less-than-expert programmers are able to develop fast and reliable systems.

“Node will show much better memory efficiency under high-loads than systems which allocate 2mb thread stacks for each connection,” the rep clarified. “Furthermore, users of Node are free from worries of dead-locking the process — there are no locks. Almost no function in Node directly performs I/O, so the process never blocks.”

According to its developers, Node is influenced by and similar in design to systems such as Ruby’s Event Machine or Python’s Twisted, but takes the event model further by presenting the event loop as a language construct instead of as a library.

For example, while other systems may issue a blocking call to start the eventloop, defining behavior through callbacks at the beginning of a script and at the end to start a server through a blocking call such as EventMachine::run(), there is no such start-the-event-loop call in Node.

“Node simply enters the event loop after executing the input script [and] exits the event loop when there are no more callbacks to perform,” the rep reveals. “This behavior is like browser JavaScript [where] the event loop is hidden from the user.”

Other nods to the web can also be found in Node, which treats HTTP as a first class protocol, with a library that has grown out of experiences in developing and working with web servers. For example, while streaming data through web frameworks is often impossible, Node’s HTTP parser and API attempt to correct these problems, and when coupled with Node’s event driven infrastructure, it makes a solid foundation for libraries and web frameworks.

For developers concerned about multiple-processor concurrency and using threads to scale programs to multi-core computers, with Node, new processes can be started via the child_process.fork(), with these processes being scheduled in parallel. For load balancing incoming connections across multiple processes, the cluster module provides a solution.

As for why anyone would want to use JavaScript on a server-side application, Cois notes that although JavaScript has traditionally been relegated to menial tasks in the web browser, it’s actually a fully-functional, highly capable programming language.

Related:  

Copyright © 2024 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

opinion

Account-to-Account Payments: The New Banking Disruptor?

So much of our industry relies upon Visa and Mastercard to support consumer payments — and with that reliance comes increased scrutiny by both brands. From a compliance perspective, the bar keeps getting raised until it feels like we end up spending half our time making sure we are compliant rather than growing our business.

Cathy Beardsley ·
profile

WIA Profile: Samantha Beatrice

Beatrice credits the sex positivity of Montreal for ultimately inspiring her to pursue work in adult entertainment. She had many friends working in the industry, from sex workers to production teams, so it felt like a natural fit and offered an opportunity to apply her marketing and social media savvy to support people she truly believes in and wants to see succeed.

Women In Adult ·
opinion

Understanding the Latest Server Processors

Over the last decade, we mostly stopped talking about CPU performance. Recently, however, there has been a seismic and exciting change in the CPU landscape, due to innovation by a chip company called Advanced Micro Devices (AMD).

Brad Mitchell ·
opinion

User Choice, Privacy and the Importance of Education in AV

As we discussed last month, age verification in the adult sector is critical to ensuring legal compliance with ever-evolving regulations, safeguarding minors from inappropriate content and protecting the privacy of adults wishing to view adult content.

Gavin Worrall ·
opinion

Maintaining Payment Processing Compliance When the Goalpost Keeps Moving

VIRP is the new four-letter word everyone loves to hate. The Visa Integrity Risk Program went into effect last year, and affects several business types — including MCC 5967, which covers adult and anything else with nudity, and MCC 7273, dating services that don’t allow nudity.

Jonathan Corona ·
opinion

Making the Most of Your Sales Opportunities

The compliance road has been full of twists and turns this year. For many, it’s been a companywide effort just to make it across that finish line. Hopefully, most of us can now return our attention to some important things we’ve left on the back burner for months — like driving revenue.

Cathy Beardsley ·
profile

YourPaysitePartner Marks 25-Year Anniversary Amid Indie Content Renaissance

For 25 years, YourPaysitePartner has teamed up with stars and entrepreneurial brands to bring their one-stop-shop adult content dreams to life — and given the indie paysite renaissance of the past few years, the company’s efforts have paid off in spades.

Alejandro Freixes ·
opinion

WIA Profile: B. Wilde

B. Wilde considers herself a strategic, creative, analytical and entertaining person by nature — all useful traits for a “marketing girlie,” a label she happily embraces.

Women In Adult ·
opinion

Proportionality in Age Verification

Ever-evolving age verification (AV) regulations make it critical for companies in the adult sector to ensure legal compliance while protecting the privacy of adults wishing to view adult content. In the past, however, adult sites implementing AV solutions have seen up to a 60% drop in traffic as a result.

Gavin Worrall ·
opinion

Goodbye to Noncompete Agreements in the US?

A noncompetition agreement, also known as a noncompete clause or covenant not to compete, is a contract between an employer and an employee, or between two companies.

Corey D. Silverstein ·
Show More