June 26th, 2021

Константин Балашов

Почему Python всех обогнал

Почему кривой и горбатый язык программирования Питон обогнал умных и красивых Java и C#

(почему обогнал C++ - понятно, далеко не все готовы к долгим любовным утехам в гамаке на лыжах стоя)

Так вот.

Джава и С# - языки программирования для программистов.

Питон - чуть-чуть для программистов и очень сильно для не-прогаммистов.

Чем занимаются профессиональные программисты? Они пишут надёжный, поддерживаемый функционал.

Чем занимаются не-программисты? Они используют этот функционал.

Они также могут писать свой код, но у них нет экспертизы в надёжности и поддерживаемости кода, и им нужно попроще.

Для программиста строгая типизация, ООО, разделение концепций - обязательно, потому что им ещё этот код сопровождать.
Не-программисту это всё кажется лишними ненужными ритуалами, танцем с бубном, им нужно по-быстрому сделать что им нужно и получить результат.

Питон позволяет пользователю быстро вызывать пару библиотечных функций и получить результат.

С# требует, чтобы был нэймспэйс, класс, статическая функция. Или не-статическая, но тогда нужно создавать экземпляр класса.

Для не-программиста это всё ненужный хлам, ему нужно вызвать то, вызвать это, и показать результат на экране или записать в файл.

Зачем нэймспейс, зачем класс?

В итоге программисты кололись, плакали, но писали библиотеки под Питон.

А под C# не писали, потому что нафиг никому они не нужны.

И тут Микрософт пораскинул умищем, и решил, что всё дело в строгой типизации.

В Питоне-то её нет! Если бы и в С# не было, подумали они, так жизнь бы и наладилась!

И ввели var

От которого не-программистам толку мало, а программистам - один вред.

Ну, "Hello World" c ним писать, конечно, удобнее, но поддерживать код вдруг становится сложнее.

А всего-то нужно было сделать среду, в которой автоматически создавать консольный апп, в котором бы был хедер и футер скрыт

Хедер:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
  class Program
  {
      static void Main(string[] args)
      {

Футер:

      }
  }
}


Вот они чтобы были скрыты.

и код выглядел так:

[+]

          int i = 5;
          Console.WriteLine(i);
[+]

Console.WrшteLine заменить на syntax sugar "print"

и всё!

Ну, может ещё syntax sugar для многомерных массивов подбацать.

Можно было это сделать 20 лет назад? Можно.

Задавил бы С# питон? Задавил бы насмерть!

C# быстрее

C# удобнее для программистов, библиотеки можно писать надёжными и поддерживаемыми

Numpy, Sympy, Scipy, Tensorflow, Scikit-learn были бы написаны на C#, а Питон бы уже никто не помнил.

На Линуксе, кстати, можно было бы гонять то же самое через Mono

Майкрософт ступииииил и потерял и научную среду, и нейросети, и много чего ещё.

А всё потому, что маркетологи ориентировались непонятно на кого (на кого они ориентируются, кстати? На скучающих хипстеров?)