Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 23.12.25 14:32
Оценка:
Тут: https://habr.com/ru/news/979612/

Верите?
=сначала спроси у GPT=
Re: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 15:23
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Верите?


Наша путеводная звезда — “1 инженер, 1 месяц, 1 миллион строк кода”.


Пипец какой. Ну т.е. содержательно, собралось как-то — ну и ладушки.

Как один инженер может за один месац понять хоть что-то в миллионе строк кода?

Слабоумие и отвага...
Re: Microsoft исключит C++ к 2030 году...
От: sergii.p  
Дата: 23.12.25 15:36
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Тут: https://habr.com/ru/news/979612/


S>Верите?


сейчас уже неясно. Раньше любое переписывание проекта на новый язык — это был тупиковый путь. Но с использованием ИИ подобные задачи должны решаться проще. В любом случае пусть попробуют. 1 человек — не такие большие затраты.
Re[2]: Microsoft исключит C++ к 2030 году...
От: qqqqq  
Дата: 23.12.25 17:08
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, Shmj, Вы писали:


S>>Верите?


Pzz>

Pzz>Наша путеводная звезда — “1 инженер, 1 месяц, 1 миллион строк кода”.



Теперь Хант ищет ведущего инженера-программиста

Re[3]: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 17:10
Оценка: +1 :)
Здравствуйте, qqqqq, Вы писали:

Q>

Q>Теперь Хант ищет ведущего инженера-программиста


На которого свялят неудачу всей этой затеи?
Re: Microsoft исключит C++ к 2030 году...
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 23.12.25 17:32
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Тут: https://habr.com/ru/news/979612/


S>Верите?


Вера это не наш удел. Но вероятность того, что с помощью ИИ можно оптимизировать компиляторы того же C# в С++ вполне реально.
Native AOT развиваются, многие библиотеки подтягивают совместимость.

Возможно стоило бы расширить C# для создания объектов на стеке. Структуры к сожалению многого не поддерживают.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 23.12.25 19:01
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Пипец какой. Ну т.е. содержательно, собралось как-то — ну и ладушки.

Pzz>Как один инженер может за один месац понять хоть что-то в миллионе строк кода?

Pzz>Слабоумие и отвага...


Видимо им этот C++ как гвоздь в заднице — спецов мало, стоят дорого, обучать долго и дорого. И без него никак
=сначала спроси у GPT=
Re[3]: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 19:06
Оценка: +4
Здравствуйте, Shmj, Вы писали:

Pzz>>Слабоумие и отвага...


S>Видимо им этот C++ как гвоздь в заднице — спецов мало, стоят дорого, обучать долго и дорого. И без него никак


Ну, я бы мелочи переписал, откровенно проблемные места переписал, а что работает, оставил бы и поддерживал. Для нового кода старался бы C++ не брать.

В конце концов, их любимый Rust вполне сочетается, насколько я в курсе, внутри одной программы с C++.

А так вот махом взять и переписать всё, со скоростью миллион строк кода на один человеко-месяц — это верный способ получить тонны кода, в котором старые проблемы в среднем сохранятся, появятся доселе невиданные новые, и в котором НИКТО НИЧЕГО НЕ ПОНИМАЕТ. IMHO, это ужас-ужас и кошмар.
Re[4]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 23.12.25 19:23
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>В конце концов, их любимый Rust вполне сочетается, насколько я в курсе, внутри одной программы с C++.


Это как? Нету сочетания — только стандартный FFI, с таким же успехом можете с Delphi сочетать...
=сначала спроси у GPT=
Re[4]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 23.12.25 19:24
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А так вот махом взять и переписать всё, со скоростью миллион строк кода на один человеко-месяц — это верный способ получить тонны кода, в котором старые проблемы в среднем сохранятся, появятся доселе невиданные новые, и в котором НИКТО НИЧЕГО НЕ ПОНИМАЕТ. IMHO, это ужас-ужас и кошмар.


Боюсь что так и будет. Причина — язык это целая философия, а не просто инструкции.
=сначала спроси у GPT=
Re[5]: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 19:30
Оценка:
Здравствуйте, Shmj, Вы писали:

Pzz>>В конце концов, их любимый Rust вполне сочетается, насколько я в курсе, внутри одной программы с C++.


S>Это как? Нету сочетания — только стандартный FFI, с таким же успехом можете с Delphi сочетать...


Ну вот да, через FFI. Но насколько я понимаю, Rust сочетсяется с C через FFI в любую сторону. Т.е., можно в программу на Rust вставить запчасть на C, можно наоборот. Иди, попробуй в программу на C кусок на Haskell вставь. Или на Питоне даже, но так, чтобы работало нормально. У Питона тоже есть FFI.
Re[5]: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 19:36
Оценка: +3
Здравствуйте, Shmj, Вы писали:

Pzz>>А так вот махом взять и переписать всё, со скоростью миллион строк кода на один человеко-месяц — это верный способ получить тонны кода, в котором старые проблемы в среднем сохранятся, появятся доселе невиданные новые, и в котором НИКТО НИЧЕГО НЕ ПОНИМАЕТ. IMHO, это ужас-ужас и кошмар.


S>Боюсь что так и будет. Причина — язык это целая философия, а не просто инструкции.


И заметь, специфически-плюсовые проблемы, типа неаккуратного обращения с памятью, так может и поймают. Но собственно, если сравнимое количество ресурсов и усилий потратить на статический анализ C++ (давайте назовём это переписыванием с C++ на C++ ), то полагаю, сравнимое количество ошибок и будет найдено и устранено.

А вот логические ошибки, они никуда не денутся. Кроме того, совсем не факт, что ИИ перепишет алгоритмы, сохранив эквиавалентность исходного и переписанного алгоритма, т.е. тут тоже может понадобавлять ошибок. Которые вылезут в corner cases, совсем не факт, что покрытых тестами.

В общем, если они получили на это развлечение грант от Пентагона или АНБ, ну, молодцы, хороший бизнес. А если за свои, ну, такое себе.
Re[6]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 23.12.25 19:41
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну вот да, через FFI. Но насколько я понимаю, Rust сочетсяется с C через FFI в любую сторону. Т.е., можно в программу на Rust вставить запчасть на C, можно наоборот. Иди, попробуй в программу на C кусок на Haskell вставь. Или на Питоне даже, но так, чтобы работало нормально. У Питона тоже есть FFI.


Можно: https://wiki.haskell.org/Foreign_Function_Interface

FFI — это одно из немногого, о чем человечество смогло договориться.
=сначала спроси у GPT=
Re[7]: Microsoft исключит C++ к 2030 году...
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.12.25 19:47
Оценка:
Здравствуйте, Shmj, Вы писали:

Pzz>>Ну вот да, через FFI. Но насколько я понимаю, Rust сочетсяется с C через FFI в любую сторону. Т.е., можно в программу на Rust вставить запчасть на C, можно наоборот. Иди, попробуй в программу на C кусок на Haskell вставь. Или на Питоне даже, но так, чтобы работало нормально. У Питона тоже есть FFI.


S>Можно: https://wiki.haskell.org/Foreign_Function_Interface


S>FFI — это одно из немногого, о чем человечество смогло договориться.


То, что из Хаскеля можно вызвать Си, нет никаких сомнений. Иначе он ни слова напечатать бы не мог.

А вот в другую сторону — там возникают всякие интересные проблемы с рантайном. И это совсем не то же самое, что FFI.

Например, на Go можно написать C-callable библиотеку (и динамическую и статическую). Но две такие штуки в одном процессе ужиться не могут (я, правда, давно на это нарывался, может с тех пор что-то и починили). Проблема в том, что два гошных рантайма в одном процессе не могут поделить tread-local storage, они как-то очень хитро на него садятся, и мешают друг другу.
Re: Microsoft исключит C++ к 2030 году...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 23.12.25 19:49
Оценка:
Здравствуйте, Shmj, Вы писали:

Пропал калабуховский дом
Маньяк Робокряк колесит по городу
Re: Microsoft исключит C++ к 2030 году...
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.12.25 22:15
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S> Верите?


Rust + AI — ну пусть делают, Nokia их давно ждет.
Re[2]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 24.12.25 16:33
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Rust + AI — ну пусть делают, Nokia их давно ждет.


Хотелось бы более развернутого мнения.

Я пробовал Rust, но там слишком скудное ООП. В C++ хотя бы ООП есть, а ручное выделение памяти уже можно не использовать.

Если бы в Rust добавили полноценное ООП — тогда бы было интересно.
=сначала спроси у GPT=
Re[3]: Microsoft исключит C++ к 2030 году...
От: sergii.p  
Дата: 24.12.25 16:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Если бы в Rust добавили полноценное ООП — тогда бы было интересно.


не понимаю какого ООП вам там не хватает? Трейты — фактически абстрактные классы. Указатели есть. Пример на С++ который трудно/невозможно написать на Rust в студию.
Re[4]: Microsoft исключит C++ к 2030 году...
От: Shmj Ниоткуда  
Дата: 24.12.25 17:55
Оценка:
Здравствуйте, sergii.p, Вы писали:

SP>не понимаю какого ООП вам там не хватает? Трейты — фактически абстрактные классы. Указатели есть. Пример на С++ который трудно/невозможно написать на Rust в студию.


Ну вот пример:

С++

  Скрытый текст
#include <iostream>
#include <memory>

class Base1 {
public:
    virtual ~Base1() = default;

    virtual  void fun1() const {
        std::cout << "fun1=" << a << std::endl;
    }

    virtual void fun2() const {
        std::cout << "fun2=" << a << std::endl;
    }

    virtual void fun3() const {
        std::cout << "fun3=" << a << std::endl;
    }

    virtual void fun4() const {
        std::cout << "fun4=" << a << std::endl;
    }
private:
    int a = 0;
};

class V1 : public Base1 {
public:
    void fun1() const override {
        std::cout << "_fun1=" << a << std::endl;
    }
private:
    int a = 1;
};

class V2 : public V1 {
public:
    void fun2() const override {
        std::cout << "__fun2=" << a << std::endl;
    }
private:
    int a = 2;
};

class V3 final : public V2 {
public:
    void fun3() const override {
        std::cout << "___fun2=" << a << std::endl;
    }
private:
    int a = 3;
};

int main() {
    const auto v3 = std::make_unique<V3>();

    v3->fun1();
    v3->fun2();
    v3->fun3();
    v3->fun4();

    return 0;
}


Т.е. в наследнике вы трогаете только то что отличается. Все просто 3 класса, поочередно наследуются. Это может быть как UI-виджеты так и некая система событий.

А вот Rust аналог авто-генеренный

Куча сущностей вместо трех простых записанных, намноОООго сложнее для восприятия. Т.е. теряется простота. А в последнем V3 вам еще нужно помнить что было переписано в V2 — это на малом количестве методов — а если их будут сотни?

В общем — слишком сложный для восприятия ООП-код получается. Не пригодно для промышленного использования.

  Скрытый текст
trait Base1Ops {
    // доступ к "Base1::a"
    fn base1_a(&self) -> i32;

    // виртуальные методы (есть дефолт, как в Base1)
    fn fun1(&self) {
        println!("fun1={}", self.base1_a());
    }
    fn fun2(&self) {
        println!("fun2={}", self.base1_a());
    }
    fn fun3(&self) {
        println!("fun3={}", self.base1_a());
    }
    fn fun4(&self) {
        println!("fun4={}", self.base1_a());
    }
}

struct Base1 {
    a: i32,
}

impl Base1 {
    fn new() -> Self {
        Self { a: 0 }
    }
}

impl Base1Ops for Base1 {
    fn base1_a(&self) -> i32 {
        self.a
    }
}

struct V1 {
    base: Base1,
    a: i32, // V1::a
}

impl V1 {
    fn new() -> Self {
        Self {
            base: Base1::new(),
            a: 1,
        }
    }
}

impl Base1Ops for V1 {
    fn base1_a(&self) -> i32 {
        self.base.a
    }

    fn fun1(&self) {
        println!("_fun1={}", self.a);
    }
}

struct V2 {
    v1: V1,
    a: i32, // V2::a
}

impl V2 {
    fn new() -> Self {
        Self { v1: V1::new(), a: 2 }
    }
}

impl Base1Ops for V2 {
    fn base1_a(&self) -> i32 {
        self.v1.base.a
    }

    // наследуем поведение V1::fun1
    fn fun1(&self) {
        self.v1.fun1();
    }

    fn fun2(&self) {
        println!("__fun2={}", self.a);
    }
}

struct V3 {
    v2: V2,
    a: i32, // V3::a
}

impl V3 {
    fn new() -> Self {
        Self { v2: V2::new(), a: 3 }
    }
}

impl Base1Ops for V3 {
    fn base1_a(&self) -> i32 {
        self.v2.v1.base.a
    }

    // наследуем поведение V1::fun1 и V2::fun2
    fn fun1(&self) {
        self.v2.fun1();
    }
    fn fun2(&self) {
        self.v2.fun2();
    }

    fn fun3(&self) {
        // в исходнике строка "___fun2=" (хотя это fun3) — сохраняю как есть
        println!("___fun2={}", self.a);
    }
    // fun4 не переопределяем => будет Base1-версия через дефолт
}

fn main() {
    let v3 = Box::new(V3::new());

    v3.fun1();
    v3.fun2();
    v3.fun3();
    v3.fun4();
}
=сначала спроси у GPT=
Отредактировано 24.12.2025 17:57 Shmj . Предыдущая версия .
Re[3]: Microsoft исключит C++ к 2030 году...
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 24.12.25 18:18
Оценка: 1 (1) +1
Здравствуйте, Shmj, Вы писали:

S>Видимо им этот C++ как гвоздь в заднице — спецов мало, стоят дорого, обучать долго и дорого. И без него никак

У Ханта специфический опыт. Сингулярити, тулы для С для решения проблем памяти. Это накладывает отпечаток на человека, а в реальности проблемы в индусах, процессах и отсутствии тестирования нормального.
Sic luceat lux!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.