C

Showing 1-9 of 11 results
EngineeringIcon ChevronBack-end

How to Learn the C and C++ Languages: The Ultimate List

by The Toptal Research Team

C is often called a middle-level computer language since it combines the elements of high-level languages with the functionalism of assembly language. C allows the manipulation of bits, bytes, and addresses—giving the programmer more control over exactly how the program will behave and a more direct access to the mechanics of the underlying hardware. C was created, influenced, and field-tested by working programmers. The end result is that C gives the programmer what the programmer wants. C++ is an enhanced version of the C language. C++ includes everything that is part of C and adds support for object-oriented programming (OOP). In addition, C++ also contains many improvements and features that make it a "better C," independent of object-oriented programming.

9 minute readContinue Reading
EngineeringIcon ChevronBack-end

Eliminating the Garbage Collector: The RAII Way

by Peter Goodspeed-Niklaus

Manual memory management is a nightmare that programmers have been inventing ways to avoid since the invention of the compiler. Programming languages with garbage collectors make life easier, but at the cost of performance. In this article, Toptal engineer Peter Goodspeed-Niklaus gives us a peek into the history of garbage collectors and explains how notions of ownership and borrowing can help eliminate garbage collectors without compromising their safety guarantees.

13 minute readContinue Reading
EngineeringIcon ChevronTechnology

Learn to Code: Wisdom and Tools for the Journey

by Nick McCrea

It's no surprise that more and more people, from all kinds of backgrounds, are deciding to learn to code. But, each person who tackles the task is soon faced with an unpleasant reality: Learning to program is hard. Contrary to expectations, the feeling of "I don't get it," may persist unabated long into the journey, making once bright-eyed beginners feel hopeless, lost, and ready to give up. The moral of the story is this: Be prepared. The path to programmer paradise is a long one, and without the right mindset at the beginning, it can quickly lose its appeal. In this article, I'll attempt to give you some guidance on what to expect on your journey, how best to go about it, and what tools and resources you may find helpful along the way.

15 minute readContinue Reading
EngineeringIcon ChevronBack-end

After All These Years, the World is Still Powered by C Programming

by Daniel Angel Muñoz Trejo

Despite the prevalence of higher-level languages, the C programming language continues to empower the world. There are plenty of reasons to believe that C programming will remain active for a long time. Here are some reasons that C is unbeatable, and almost mandatory, for certain applications.

12 minute readContinue Reading
EngineeringIcon ChevronTechnology

Video Game Physics Tutorial - Part II: Collision Detection for Solid Objects

by Nilson Souto

In Part I of this three-part series on game physics, we explored rigid bodies and their motions. In that discussion, however, objects did not interact with each other. Without some additional work, the simulated rigid bodies can go right through each other. In Part II, we will cover the collision detection step, which consists of finding pairs of bodies that are colliding among a possibly large number of bodies scattered around a 2D or 3D world.

21 minute readContinue Reading
EngineeringIcon ChevronTechnology

Video Game Physics Tutorial - Part I: An Introduction to Rigid Body Dynamics

by Nilson Souto

Simulating physics in video games is very common, since most games are inspired by things we have in the real world. Rigid body dynamics -- the movement and interaction of solid, inflexible objects -- is by far the most popular kind of effect simulated in games. In this series, rigid body simulation will be explored, starting with simple rigid body motion in this article, and then covering interactions among bodies through collisions and constraints in the following installments.

18 minute readContinue Reading
EngineeringIcon ChevronTechnology

From the Ground Up: How I Built the Developer's Dream Keyboard

by László Monda

Going from a software background, knowing nothing about electronics, to designing and building a powerful, marketable hardware device, is an interesting and fascinating experience. In this article, I'll describe the design of how this electronic masterpiece works.

11 minute readContinue Reading
EngineeringIcon ChevronData Science and Databases

Modernizing Legacy Software: MUD Programming Using Erlang and CloudI

by Michael Truog

The need to adapt legacy code and systems to meet modern day performance and processing demands is widespread. This post provides a case study of the use of Erlang and CloudI to adapt legacy code, consisting of a decades-old collection of multi-user game software written in C, to the 21st century.

7 minute readContinue Reading
EngineeringIcon ChevronTechnology

CloudI: Bringing Erlang's Fault-Tolerance to Polyglot Development

by Michael Truog

Clouds must be efficient to provide useful fault-tolerance and scalability, but they also must be easy to use. CloudI (pronounced "cloud-e" /klaʊdi/) is an open source cloud computing platform that is most closely related to the Platform as a Service (PaaS) clouds. CloudI differs in a few key ways, most importantly: software developers are not forced to use specific frameworks, slow hardware virtualization, or a particular operating system. By allowing cloud deployment to occur without virtualization, CloudI leaves development process and runtime performance unimpeded, while quality of service can be controlled with clear accountability.

9 minute readContinue Reading

Join the Toptal® community.