흔한말 (collection)/기타등등

프로그래밍 언어 순위 Top10 구경하기 (Hello World 박물관)

hnanmal 2022. 4. 12. 23:26
300x250

 

이 그림은 세상에 존재하는 수많은 프로그래밍 언어를 다이어그램으로 나타낸 그림입니다.
어지럽고, 처음 들어보는 이름도 정말 많습니다.


이 수많은 언어들 중에서 어떤 것들은 너무 오래되어 잊혀가는 것들도 있고,
어떤 언어들은 관심을 받으며 조명되고 있기도 합니다.


그러면 오늘은 TIOBE라는 사이트를 기준으로
요즘 사람들에게 가장 인기있는 언어 TOP 10을 소개하고,
각 언어의 모습을 구경하는 시간을 가져보도록 하겠습니다.


Top 10 (2023년 03월 기준)


https://www.tiobe.com/tiobe-index/

 

index | TIOBE - The Software Quality Company

TIOBE Index for April 2022 April Headline: MATLAB about to drop out of the top 20 Good old MATLAB is about to drop out of the top 20 for the first time in more than 10 years. The MATLAB programming language is mainly used in the numerical analysis domain.

www.tiobe.com

위의 링크를 통해 언어별 인기 순위를 확인할 수 있습니다.
사실 정확한 인기를 반영하는 것은 아니고, 검색 엔진에서 검색되는 빈도수에 따라 측정된 순위이기 때문에
실제 인기의 척도는 아니라는 것을 말씀드립니다.


하지만 관련 내용이 인터넷 상에서 큰 비중을 차지한다는 것 자체는 사실이겠죠?
(※ 2023년 03월 기준 내용 업데이트 됨)

순위 Apr 2022 Dec 2022 Mar 2023
1 Python Python Python
2 C C C
3 Java C++ Java
4 C++ Java C++
5 C# C# C#
6 Visual Basic Visual Basic Visual Basic
7 JavaScript JavaScript JavaScript
8 Assembly language SQL SQL
9 SQL Assembly language PHP
10 PHP PHP Go


2022년 12월 순위와 비교하면, 순위에 약간의 변동이 있었던 것을 확인 할 수 있었습니다.

자바의 순위가 한단계 다시 올라왔고, Assembly language가 Top 10에서 사라졌으며, PHP의 순위가 한단계 상승하고, 마지막으로 Go가 새로 순위권에 합류하게 되었습니다. 주로 하위권에서 조금씩 순위 변동이 있는 걸 확인할 수 있네요.

다만 대부분의 언어 순위가 큰 변동이 없었던 만큼, 당분간 프로그래밍 언어의 선호 추세가 유지 될 것 같은 느낌입니다.

 

 

구경하기

Python

  1. 특징: 스크립트 언어이고 동적 타입을 지원하는 언어입니다. 플랫폼 독립적이기 때문에 운영체제와 상관없이 동작합니다. 머신러닝과 데이터사이언스 분야에서 집중적으로 사용되며 웹개발에서도 심심치 않게 사용되는 언어입니다.
  2. 장점: 문법이 쉬운 편이라 진입장벽이 낮고, 빠른 개발 속도를 자랑합니다.
  3. 단점: 컴파일 언어에 비해 느린 편이고, 싱글 스레드만 지원합니다. (엄밀히 말하자면 조금은 틀린 표현이지만 넘어가 주세요.)

헬로월드

print("Hello, World!")



C

  1. 특징: C언어는 고급 언어이면서 하드웨어를 직접 제어할 수 있는 저급 언어로써의 능력도 탁월하다는 장점이 있습니다.
  2. 장점: 임베디드부터 대형 컴퓨터에 이르기까지 이식성이 뛰어나다고 거의 대부분의 분야에서 사용될 정도로 다양성을 가진다는 장점이 있습니다.
  3. 단점: 이후에 등장한 고급언어들에 비해서는 비교적 배우기가 어렵습니다. 코드가 모듈화 되지 않으면 자신도 파악하기 어려운 코드가 될 수 있습니다.

헬로월드

#include <stdio.h>

int main()
{
    printf("Hello, world!\n");

    return 0;
}



Java

  1. 특징: “Write Once, Run Anywhere”라는 슬로건으로 개발된 언어입니다. 어떤 환경에서도 실행할 수 있는 공통의 런타임 위에서 돌아가는 언어라고 이해하면 좋겠습니다.
  2. 장점: 객체지향적 언어이고, 이식성이 높으며 멀티스레드를 구현하며 오픈소스 라이브러리가 굉장히 풍부합니다. (생태계가 잘 조성되어 있음)
  3. 단점: 실행을 위해서 자바 가상 머신을 거쳐야 하기 때문에 속도가 조금 느린 편이며, 다른 언어에 비해 작성하게 되는 코드의 길이가 긴 편입니다.

헬로월드

public class HelloWorld
{
    public static void main(String[] args)
        {
        System.out.println("Hello, World!");
    }
}



 

 

 

 

 

















C++

  1. 특징: C언어에 객체지향적 문법 요소를 도입한 확장된 버전의 C언어입니다.
  2. 장점: 효율적이고 간결하며, C와 마찬가지로 하드웨어 제어가 가능한 저수준 프로그래밍이 가능합니다.
  3. 단점: 문자열 자료형이 없다는 것과, 간단한 기능 구현에도 예외처리를 일일이 직접 해주어야 한다는 것은 단점으로 볼 수 있습니다.

헬로월드

#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << "Hello, World!" << std::endl;

    return 0;
}



C#

  1. 특징: MS에 의해 만들어진, JAVA의 대항마 언어입니다.
  2. 장점: 수많은 라이브러리와 특화된 IDE(Visual Studio)를 통해 생산성을 높인 언어입니다.
  3. 단점: 자바와 마찬가지로 실행을 위해서 가상 머신을 거쳐야 하기 때문에 속도가 조금 느린 편입니다.

헬로월드

using System;

namespace Hello_World
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}



Visual Basic

  1. 특징: MS에서 쉽고 빠르게 Windows 운영체제 프로그램을 만들도록 하기 위해 출시한 언어입니다.
  2. 장점: 인터페이스가 쉽고 간편합니다. 도구 상자의 객체들을 드래그하여 “비주얼”하게 프로그래밍할 수 있다는 것이 장점입니다.
  3. 단점: 어플리케이션이 복잡해질수록 생산성이 하락하며, 윈도우 운영체제에 종속성이 심하기에 크로스 플랫폼은 꿈도 꿀 수 없다는 것이 단점입니다.

헬로월드

Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello, World!")
    End Sub
End Module



JavaScript

  1. 특징: 자바스크립트는 웹페이지라는 문서가 유저의 동작에 반응할 수 있도록 만들어진 프로그래밍 언어입니다.
  2. 장점: 배우기 쉬운 언어로써 진입장벽이 상대적으로 낮습니다. NodeJS를 통해 백엔드도 개발할 수 있습니다.
  3. 단점: 디버깅 기능이 부족한 편이며, 객체지향적 프로그래밍을 할 때 추상화 기능에 한계가 있다는 것은 아쉬운 점입니다.

헬로월드

<script language = "javascript" type = "text/javascript"> 
    document.write("Hello, World!")
</script>



Assembly language

  1. 특징: Assembly language는 하드웨어와 소프트웨어의 가장 낮은 층위에 있는 언어로 불릴 만큼 low level 언어라고 할 수 있습니다.
  2. 장점: 명령 실행 속도가 가장! 빠르고 프로그램 크기가 아주 작으며 어떤 프로그램도 만들 수 있다는 것은 장점입니다.
  3. 단점: 배우기가 너무 어려우며, 덩치 큰 프로그램을 수작업으로 만들기는 거의 불가능에 가깝습니다. 디버깅이 어려운 것도 한 몫하겠죠?

헬로월드

section .data
    msg db "Hello World!"

section .text
    global _start

 _start:
     mov rax, 1
        mov rdi, 1
        mov rsi, msg
        mov rdx, 12
        syscall

        mov rax, 60
        mov rdi, 0
        syscall



SQL

  1. 특징: SQL은 Structured Query Language의 줄임말입니다. 관계형 Database system에서 자료관리를 위해 설계된 언어라고 이해하시면 됩니다.
  2. 장점: 우리가 알고 있는 일반적 수준의 영어단어와 문장으로 문법이 이루어 지기에 접근성이 좋습니다.
  3. 단점: 여러 개의 행을 입력해야 하는 경우 하나의 문장으로 동시에 처리하는 것이 불가능하고, 반복적인 구문들을 Library화 할 수 없다는 것은 단점으로 보입니다.

헬로월드

CREATE TABLE helloworld (phrase TEXT);
INSERT INTO helloworld VALUES ("Hello, World!");
INSERT INTO helloworld VALUES ("Goodbye, World!");
SELECT COUNT(*) FROM helloworld;



PHP

  1. 특징: 웹 개발에 특화된 언어이며 C언어 기반입니다.
  2. 장점: 대부분의 운영체제에서 운용이 가능하고, 빠른 생산성과 저렴한 운영 비용이 장점으로 여겨집니다.
  3. 단점: 웹 사이트의 규모가 커지게 되면 사후관리가 어려워진다는 단점과 다른 프로그래머들이 쉽게 접근할 수 있기에 생기는 보안 문제가 있습니다.

헬로월드

<!DOCTYPE html>
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>

 

 

Go

  1. 특징:  2012년 3월에 구글에서 정식 발표된 프로그래밍 언어.
  2. 장점: 컴파일 언어이지만 컴파일러의 컴파일 속도가 매우 빨라 인터프리터 언어처럼 쓸 수 있다는 장점.
  3. 단점: 바이트코드를 생성하는 언어가 아니므로, 바이너리만 배포할 경우 C/C++ 프로그램이 그렇듯 해당 타깃 머신에 맞춰서 각각 컴파일해야 함. 그렇게 하지 않고서 다중 플랫폼을 지원하려면 소스 코드째로 배포해야 한다는 단점.

헬로월드

package main


import "fmt"
func main() {
	fmt.Println("hello world")
}






여러 가지 프로그래밍 언어들 구경 잘하셨죠?
이 중에 마음에 드는 것 하나를 정해서 코딩 Life를 시작해보시는 건 어떠세요?

반응형