Новая зверушка "NewPascal" & бодания в команде FPC ?

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 25.10.2018 22:59:52

Что за фигня ?
https://plus.google.com/+MaciejIzak/posts/7SW3sMURtgm
Hello,
I was kicked away today from FPC core team (by Michael Van Canneyt).
Insulting and destructive approach by Michael Van Canneyt (with silent acceptance from other persons in core team) is unacceptable (the good example can be found in topic "[fpc-devel] What's the status of Maciej's Smart Pointer enhancements?" from 29 April 2018). IMO this is not the way how good open source project should work.
I leave it to everyone for individual evaluation, here is short summary:

http://lists.freepascal.org/pipermail/f ... 38886.html

I will continue my all work as much as possible with NewPascal (which will be synced with FPC trunk few times in the year - or more often if needed), I mean here all stuff, including updates for Generics.Collections library, bug fixes for compiler and generics, smart pointers/ARC/nullable types, oxygene mode, closures and extended RTTI.
I've suspended the NewPascal foundation (it was not officially registered yet) and the idea of the NewPascal for the good of whole community (finally one project is better than divided community). I was trying to put all my energy into official FPC but it seems impossible. Every person has a dignity, and the unacceptable line of insulting in many fields was crossed many times.
Note about Generics.Collections:
the library is important for many programmers, so everyone who is using Generics.Collections should use :

https://github.com/maciej-izak/generics.collections

the FPC trunk version will be not updated anymore so if someone is using this library should definitely not use official FPC trunk version. Any bug report about Generics.Collections should be filled in my github repo (in current situation usage of official bug tracker in this matter has no sense).
The next place with actual Generics.Collections will be http://NewPascal.org distribution (which will be updated soon) - the distro was not intensively update because I was too much naive in my faith for FPC progress. NewPascal was intended as part of official FPC which in current situation is impossible.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение скалогрыз » 25.10.2018 23:23:17

староваты новости (драма была знатная!).
Но общий посыл такой - не сошлись в характерах.

Бадания в коменде, собственно с разработчиком NewPascal-я. Которого включили в команду FPC, но его метод внедрения изменений оказался слишком агрессивным для других.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение runewalsh » 26.10.2018 03:44:23

Он сделал management operators, надеюсь, с ними всё будет в порядке в будущем.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение serbod » 26.10.2018 15:50:33

Знакомая ситуация, я сам сделал много исправлений и доработок в браузере справки LHelp и библиотеке chm, но эти изменения нельзя сразу добавить как новую версию, нужно обязательно по частям, diff-ами.

Добавлено спустя 26 минут 52 секунды:
Кстати, если кто не знал - Kotlin по синтаксису почти тот же Pascal. Но там есть очень вкусные вещи:

- циклы и условия могут возвращать значения. Примерно так:
Код: Выделить всё
MaxNum := if Num1 > Num2 then Num1 else Num2;

или так:
Код: Выделить всё
FirstEvenNum := for Num in Numbers do
  if (Num mod 2) = 0 then Break(Num);


- проверка параметров и результатов на nil на уровне языка. Вместо постоянных Assert(Assigned(Obj)) или if Obj<>nil then используются модификаторы !! и ??

- генераторы. Это как итераторы, но не только для списков, а для чего угодно.

- корутины. Это постановка процедур в очередь, где они будут выполнены позже, в несколько потоков, в зависимости от возможностей системы.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 26.10.2018 16:40:23

Из новых языков лично я выдели бы "Rust". Реально люди думают над фишками. Одинаково годен и для императивного,и для функционального кода. Шлифуется на крайне серьезном и всеохватном проекте - движке ФайрФокса.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение zoltanleo » 27.10.2018 14:58:40

debi12345 писал(а):Что за фигня ?

Этой новости сто лет в обед

Но, судя по топику, там все разрулилось благополучно. Это не мы :D
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 27.10.2018 15:24:32

Но, судя по топику, там все разрулилось благополучно.

Похоже что там авторитетные юзеры наехали на ФПЦ-команду в духе:
"Вы хотите лишить нас надежды на реелизацию давно обещанных и столь ожидаемых фишек X,Y... ? Сами не хотите и/или не можете, и других, кто может, футболите ? "

Добавлено спустя 11 минут 23 секунды:
Кстати заметил в новых языках сдвиг от классов в сторону трэйтов (даже в С++ !!!). А шаблоны (=реюз кода на уровне исходников) стали заменять на расширенные (шаблоноподобные) макроязыки (как в "Rust"). В pascal-ях эти тенденции тоже проявились ?

Псевдо-шаблон на макро-языке:
Код: Выделить всё
// Taken from winapi/src/macros.rs:

// definition
macro_rules! STRUCT {
    {$(#[$attrs:meta])* nodebug struct $name:ident { $($field:ident: $ftype:ty,)+ }} => {
        #[repr(C)] $(#[$attrs])*
        pub struct $name {
            $(pub $field: $ftype,)+
        }
        impl Copy for $name {}
        impl Clone for $name { fn clone(&self) -> $name { *self } }
    };
    {$(#[$attrs:meta])* struct $name:ident { $($field:ident: $ftype:ty,)+ }} => {
        #[repr(C)] #[derive(Debug)] $(#[$attrs])*
        pub struct $name {
            $(pub $field: $ftype,)+
        }
        impl Copy for $name {}
        impl Clone for $name { fn clone(&self) -> $name { *self } }
    };
}

//usage
STRUCT!{struct DOC_INFO_1W {
    pDocName: LPCWSTR,
    pOutputFile: LPCWSTR,
    pDatatype: LPCWSTR,
}}
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение Mikhail » 27.10.2018 16:06:48

debi12345 писал(а):В pascal-ях эти тенденции тоже проявились ?

Нет, и не нужно это в этом Паскале.

Добавлено спустя 4 минуты 44 секунды:
debi12345 писал(а):Реально люди думают над фишками.

С "фишками", похоже, они уже переборщили. Слишком усложнили язык.
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 27.10.2018 16:25:00

С "фишками", похоже, они уже переборщили. Слишком усложнили язык.

Ими пользоваться не обязательно, но если захочешь или понадобится, то да-а-а-а-а - придется напрячь серое вещество просто чтобы не испугаться синтаксиса. Одни лайфтаймы чего стОят :shock:
Не пойму другой странной (и потенциально опасной) моды в новых языках и новых версиях С++ - возможности переопрдееления переменных внутри блока из {}-скобок, в этом примере переменная "rc" переопределяется три раза:
Код: Выделить всё
    let (rc, name) = get_default_printer_name();
    if rc { // the new scope where variable names can be reused and types can be changed
        println!("defalt printer: {:?}", name);
        let (rc, printer) = open_printer(name);
        if rc { // the new scope...
            println!("open printer handle: {:?}", printer);
             let (rc, job) =  begin_raw_doc(printer);
             if rc { // the new scope...
                println!("job ID: {:?}", job);   
...
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение Mikhail » 27.10.2018 16:27:42

debi12345 писал(а):Не пойму другой странной (и потенциально опасной) моды в новых языках и новых версиях С++ - возможности переопрдееления переменных внутри блока из {}-скобок, в этом примере переменная "rc" переопределяется три раза:

С чего бы это она новая? В Си и Си++ давно так можно в каждом блоке.
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 27.10.2018 16:34:40

Нет, и не нужно это в этом Паскале.

Почему то появилась всеобщая тенденция избавления от бинарного наследования кода - объясняют некой злодейской "тормознутостью виртуальщины", ессно сравнивая реализации однотипных задач на С и С++ и т.п. Типа пусть будет больший объем программ (типа на компах теперь много памяти), но зато не будет "виртуальных издержек на процах и кэшах" :roll:
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение Mikhail » 27.10.2018 16:39:28

debi12345 писал(а):
Нет, и не нужно это в этом Паскале.

Почему то появилась всеобщая тенденция избавления от бинарного наследования кода - объясняют некой злодейской "тормознутостью виртуальщины", ессно сравнивая реализации однотипных задач на С и С++ и т.п. Типа пусть будет больший объем программ (типа на компах теперь много памяти), но зато не будет "виртуальных издержек на процах и кэшах" :roll:

Дело не в "тормознутости", проблема чисто архитектурная. В общем если можно обойтись без наследования реализации, то лучше обойтись без нее.
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 27.10.2018 16:51:58

В Си и Си++ давно так можно в каждом блоке.

Ха-ха, 100 лет не следил за этими делами в С и поэтому использовал разные переменные. Спасибо что ткнули носом :D
(хотя не факт что рискну использовать эту фишку - она по-своему опасная, зависящая от объявишь тип данных или нет)
В общем если можно обойтись без наследования реализации, то лучше обойтись без нее.

Так ведь не обходятся, а разными (иногда извращенными) способами выносят ее в исходники
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение Mikhail » 27.10.2018 16:58:32

Ну новый идентификатор затеняет старый, в общем то особых проблем нет, но варианты напортачить есть, конечно.

debi12345 писал(а):Так ведь не обходятся, а разными (иногда извращенными) способами выносят ее в исходники

Только те у кого ООП головного мозга.
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: Новая зверушка "NewPascal" & бодания в команде FPC ?

Сообщение debi12345 » 27.10.2018 17:19:51

Только те у кого ООП головного мозга.

К этому есть основания - ООП выглядит стройным и логичным как естественная классификация сущностей реального мира.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

След.

Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru