StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Languages
  4. Languages
  5. C vs Pharo

C vs Pharo

OverviewDecisionsComparisonAlternatives

Overview

C lang
C lang
Stacks14.9K
Followers4.2K
Votes253
Pharo
Pharo
Stacks39
Followers47
Votes44

C vs Pharo: What are the differences?

Introduction: In this Markdown code, we will discuss the key differences between C and Pharo programming languages.

  1. Syntax: One major difference between C and Pharo is their syntax. C follows a more procedural programming syntax where the code is written in a linear fashion with functions and structures, while Pharo follows an object-oriented approach with a more message passing syntax.

  2. Memory Management: In C, memory management is done manually by the programmer using functions like malloc() and free(), whereas in Pharo, memory management is handled automatically through garbage collection, making it more convenient for the programmer.

  3. Static vs Dynamic Typing: C is a statically typed language, meaning variable types are checked at compile time, while Pharo is dynamically typed, allowing for more flexibility as variable types are checked at runtime.

  4. Standard Libraries: C provides a limited standard library, requiring programmers to rely more on external libraries for various functionalities, whereas Pharo comes with a rich set of libraries and tools out of the box, making it more self-sufficient.

  5. Platform Independence: C code needs to be compiled separately for different platforms, whereas Pharo offers platform independence due to its virtual machine approach, allowing the same code to run on multiple platforms without modification.

  6. Development Environment: C development often involves using separate text editors and compilers, while Pharo provides an integrated development environment (IDE) with tools like code browsers, inspectors, and debuggers, simplifying the coding process.

In Summary, the key differences between C and Pharo programming languages lie in their syntax, memory management, typing system, standard libraries, platform independence, and development environment.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on C lang, Pharo

Russtopia
Russtopia

Sr. Doodad Imagineer at Russtopia Labs

Dec 8, 2019

Decided

As a personal research project I wanted to add post-quantum crypto KEM (key encapsulation) algorithms and new symmetric crypto session algorithms to openssh. I found the openssh code and its channel/context management extremely complex.

Concurrently, I was learning Go. It occurred to me that Go's excellent standard library, including crypto libraries, plus its much safer memory model and string/buffer handling would be better suited to a secure remote shell solution. So I started from scratch, writing a clean-room Go-based solution, without regard for ssh compatibility. Interactive and token-based login, secure copy and tunnels.

Of course, it needs a proper security audit for side channel attacks, protocol vulnerabilities and so on -- but I was impressed by how much simpler a client-server application with crypto and complex terminal handling was in Go.

<pre> $ sloc openssh-portable Languages Files Code Comment Blank Total CodeLns Total 502 112982 14327 15705 143014 100.0% C 389 105938 13349 14416 133703 93.5% Shell 92 6118 937 1129 8184 5.7% Make 16 468 37 131 636 0.4% AWK 1 363 0 7 370 0.3% C++ 3 79 4 18 101 0.1% Conf 1 16 0 4 20 0.0% $ sloc xs Languages Files Code Comment Blank Total CodeLns Total 34 3658 1231 655 5544 100.0% Go 19 3230 1199 507 4936 89.0% Markdown 2 181 0 76 257 4.6% Make 7 148 4 50 202 3.6% YAML 1 39 0 5 44 0.8% Text 1 30 0 7 37 0.7% Modula 1 16 0 2 18 0.3% Shell 3 14 28 8 50 0.9% </pre>

https://gogs.blitter.com/RLabs/xs

233k views233k
Comments

Detailed Comparison

C lang
C lang
Pharo
Pharo

No description available.

A pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.

-
Object-oriented programming language; Live, immersive environment; Powerful debugger; Active Community
Statistics
Stacks
14.9K
Stacks
39
Followers
4.2K
Followers
47
Votes
253
Votes
44
Pros & Cons
Pros
  • 69
    Performance
  • 49
    Low-level
  • 36
    Portability
  • 29
    Hardware level
  • 19
    Embedded apps
Cons
  • 5
    Low-level
  • 3
    No built in support for parallelism (e.g. map-reduce)
  • 3
    Lack of type safety
  • 3
    No built in support for concurrency
Pros
  • 3
    Great tooling
  • 3
    Simple OOP
  • 3
    Great DSL capabilities
  • 3
    Image-based instead of source-file based
  • 3
    Great syntax for anonymous functions (blocks)

What are some alternatives to C lang, Pharo?

JavaScript

JavaScript

JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.

Python

Python

Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.

PHP

PHP

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Ruby

Ruby

Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

Java

Java

Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!

Golang

Golang

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

HTML5

HTML5

HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C). The previous version, HTML 4, was standardised in 1997.

C#

C#

C# (pronounced "See Sharp") is a simple, modern, object-oriented, and type-safe programming language. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.

PhpStorm

PhpStorm

PhpStorm is a PHP IDE which keeps up with latest PHP & web languages trends, integrates a variety of modern tools, and brings even more extensibility with support for major PHP frameworks.

IntelliJ IDEA

IntelliJ IDEA

Out of the box, IntelliJ IDEA provides a comprehensive feature set including tools and integrations with the most important modern technologies and frameworks for enterprise and web development with Java, Scala, Groovy and other languages.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase