Need advice about which tool to choose?Ask the StackShare community!

C

5.2K
3.7K
+ 1
230
Perl

1.6K
748
+ 1
513
Add tool

C vs Perl: What are the differences?

What is C? One of the most widely used programming languages of all time. .

What is Perl? Highly capable, feature-rich programming language with over 26 years of development. Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.

C and Perl belong to "Languages" category of the tech stack.

"Performance" is the top reason why over 52 developers like C, while over 62 developers mention "Lots of libraries" as the leading cause for choosing Perl.

Perl is an open source tool with 435 GitHub stars and 152 GitHub forks. Here's a link to Perl's open source repository on GitHub.

AdRoll, Twitch, and Redis Labs are some of the popular companies that use C, whereas Perl is used by DuckDuckGo, Tilt, and Twilio SendGrid. C has a broader approval, being mentioned in 64 company stacks & 251 developers stacks; compared to Perl, which is listed in 133 company stacks and 64 developer stacks.

Advice on C and Perl
Youcef Benamare
Needs advice
on
C#
C++
and
C

include include int main(){ char name[10], pasword[10]; printf("enter you user name :"); gets(name); printf("enter your pasword : "); gets(pasword); printf("your name : %s \n your password : %s \n", name, pasword); if ( name != "youcef") { printf("name undefined\n"); } else { printf("finde name"); }

}

his not working

See more
Replies (1)
Richard Rios
Senior Software Engineer | 3 upvotes 路 191 views
Recommends
C

You will want to do a few things here. First, replace gets with fgets. Then, you're going to want to use strcmp from string.h to compare the input with the desired result. The code listed below has been updated with a working example with the previously mentioned recommendations. This isn't perfect and there are other ways to accomplish the same task. Explore other options that are available when you have a chance and see if you can improve on this example.

#include <stdio.h>
#include <string.h>

int main()
{ 
    char name[10], 
    pasword[10]; 

    printf("enter you user name :"); 

    // Use fgets as gets is insecure and can easily lead to buffer overflow exploits
    fgets(name, sizeof(char) * sizeof(name), stdin);

    // Remove \n from fgets stdin read with null character so as to not have to include
    // in strcmp later.
    name[strlen(name) - 1] = '\0';

    printf("enter your pasword : "); 
    fgets(pasword, sizeof(char) * sizeof(pasword), stdin);

    printf("your name : %s \n your password : %s \n", name, pasword);

    // If strcmp result > 0 || < 0 it's not a match
    if (strcmp(name, "youcef") != 0) 
    { 
        printf("name undefined\n"); 
    } 
    else 
    { 
        printf("finde name"); 
    }
}
See more
Decisions about C and Perl

Python has become the most popular language for machine learning right now since almost all machine learning tools provide service for this language, and it is really to use since it has many build-in objects like Hashtable. In C, you need to implement everything by yourself.

C++ is one of the most popular programming languages in graphics. It has many fancy libraries like eigen to help us process matrix. I have many previous projects about graphics based on C++ and this time, we also need to deal with graphics since we need to analyze movements of the human body. C++ has much more advantages than Java. C++ uses only compiler, whereas Java uses compiler and interpreter in both. C++ supports both operator overloading and method overloading whereas Java only supports method overloading. C++ supports manual object management with the help of new and delete keywords whereas Java has built-in automatic garbage collection.

See more
Russtopia Labs
Sr. Doodad Imagineer at Russtopia Labs | 0 upvote 路 64.8K views
Chose
Go
over
C++
C

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.

$ 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%

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

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of C
Pros of Perl
  • 64
    Performance
  • 45
    Low-level
  • 33
    Portability
  • 28
    Hardware level
  • 18
    Embedded apps
  • 12
    Pure
  • 9
    Performance of assembler
  • 7
    Ubiquity
  • 4
    Great for embedded
  • 4
    Old
  • 2
    OpenMP
  • 2
    No garbage collection to slow it down
  • 2
    Compiles quickly
  • 68
    Lots of libraries
  • 62
    Open source
  • 58
    Text processing
  • 49
    Powerful
  • 45
    Unix-style
  • 44
    Regex
  • 35
    Stable
  • 28
    Concise syntax
  • 27
    Hackerish
  • 19
    Easy to use
  • 10
    Swiss army chainsaw
  • 10
    CPAN
  • 9
    Code Less Do More
  • 7
    Freedom
  • 6
    All purpose
  • 5
    Familiar
  • 4
    Readability
  • 4
    Community
  • 3
    It's the best one-off task language
  • 3
    Modular
  • 3
    Object-Oriented
  • 2
    Postmodern
  • 2
    Good man pages
  • 2
    For a man
  • 2
    Many ways to do it
  • 2
    Smart (does alot for you)
  • 1
    Hashes
  • 1
    Multi-threaded support
  • 1
    Single Source Library (CPAN)
  • 1
    Auto case variables

Sign up to add or upvote prosMake informed product decisions

Cons of C
Cons of Perl
  • 5
    Low-level
  • 3
    No built in support for concurrency
  • 2
    Lack of type safety
  • 2
    No built in support for parallelism (e.g. map-reduce)
  • 3
    Messy $/@/% syntax
  • 3
    No exception handling
  • 2
    No OS threads
  • 2
    Bad OO support
  • 2
    "1;"
  • 1
    Copy-on-create for interpreter-based threads
  • 1
    Barewords
  • 1
    Errors/warnings are ignored by default
  • 1
    Variables are global by default

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is C?

What is Perl?

Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.

Need advice about which tool to choose?Ask the StackShare community!

What companies use C?
What companies use Perl?
See which teams inside your own company are using C or Perl.
Sign up for Private StackShareLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with C?
What tools integrate with Perl?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

What are some alternatives to C and Perl?
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!
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.
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.
Objective-C
Objective-C is a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C inherits the syntax, primitive types, and flow control statements of C and adds syntax for defining classes and methods. It also adds language-level support for object graph management and object literals while providing dynamic typing and binding, deferring many responsibilities until runtime.
Rust
Rust is a systems programming language that combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and complete control over the lifecycle of memory.
See all alternatives