LINUX.ORG.RU

А куда, если не в веб?

 , ,


3

4

Хай, Лор. Давно сюда не писал, многое поменялось, многое перепробовал.

Но вот незадача - присутствует чувство, что всё идёт сейчас в веб. Я уже было смирился с этой мыслью, но тут начинается…Чертов фронтенд. Вот не нравится мне размечать документы и объяснять машине по полчаса, почему и какая кнопка, где должна находиться.

Хотелось бы такую отрасль, в которой я бы смог набивать руку на фрилансе, но чтобы это не было связано с этим визуальным рукоблудием.

Подскажите, есть ли истории успеха? Что-то алгоритмическое/техническое? Буду рад всем отписавшимся по вопросу.

Ответ на: комментарий от anonymous

В век гигагерцев оно пулей должно грузиться, а не как двадцать лет тому

Давай невые... Работает после загрузки быстро? Работает. 13 секунд потерпишь? Потерпишь. И это на фоне того, что у меня 6000 вкладок в фурифоксе, так что это не самый быстрый вариант браузер.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

При том, что гуглодоки имеют одну-единственную цель: совместное редактирование документов. У нормальных людей это решается просто: кладем исходники теховские на гитхаб/сосфорж/и т.п., да редактируем себе...

Эм-м-м... я боюсь, что классические VCS, вроде Git или SVN, в данном случае будут бесполезным мусором, потому что задолбаешься руками вносить правки.

«Офис» - ненужное говнище, разработанное для дебилов, у которых рука к мыши приросла!

Да. Сейчас как раз пишу примитивное подобие Google Docs, и постоянно плююсь от того, насколько неудобно на самом деле с ним работать, и насколько геморно повторять все эти неудобства в моем редакторе.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

DOM же! css! это г...ще требующее кучи времени по сравнению с формошлёпанием. Да ещё и тормозное, если не использовать angular или не быть гуру фронтенда 80 уровня.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

DOM же! css! это г...ще требующее кучи времени по сравнению с формошлёпанием. Да ещё и тормозное, если не использовать angular или не быть гуру фронтенда 80 уровня

Angular, React, Vue, и еще гора фреймворков, включая редактор ProseMirror и Kix (Google docs) — все они функционируют, сравнивая целевую модель с текущей и применяя минимальные модификации.

https://caniuse.com/#feat=flexbox - Flexbox-ы в разной степени поддерживают все браузеры с 2012 года, с 2014 полная поддержка в FF, с 2015 полная поддержка в MS Edge. То есть, минимум пять лет полноценная поддержка во всех популярных. Работают они примерно как в Qt/GTK Layout-ы.

byko3y ★★★★
()
Ответ на: комментарий от fsb4000

В общем паскаль в 2020 совсем не тот, что был Turbo pascal в девяностых…

Самое смешное, что у турбо паскаля в девяностых уже были человеческие модули. Которые в C++ завезли вот только что в последний стандарт, и ещё лет 10 будут внедрять.

hobbit ★★★★★
()
Ответ на: комментарий от Stremitelnyj

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

Это надо просто в гранит отлить.

Л — логика.

hobbit ★★★★★
()
Ответ на: комментарий от Stremitelnyj

Это ещё прекраснее.

Так и запишем — человек не в курсе, чем языки программирования отличаются от библиотек. Но своё мнение о ненужности паскаля, конечно же, имеет.

hobbit ★★★★★
()
Ответ на: комментарий от Stremitelnyj
var request: TNetHTTPRequest;
    response: IHTTPResponse;
begin
    request := TNetHTTPRequest.Create(nil);
    try
        response := request.Get('http://url.com', nil, nil);
        { processing }
    finally
        request.Free();
    end;
end;

Хотя библиотек есть куча разных, как и вариаций вызова для конкретно этого компонента. А при чем тут это к обсуждению?

byko3y ★★★★
()
Ответ на: комментарий от Stremitelnyj

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

Современный паскаль от того, который «для обучения», ушёл уже давным-давно. Лет так 30 назад как минимум.

А я кстати просил код.

Ты просил код для решения специфической вебозадачи. Это делается не языком, а библиотекой. Подозреваю, что тебе нужен класс TFPHTTPClient из библиотеки FreePascal.

hobbit ★★★★★
()
Ответ на: комментарий от Stremitelnyj

Да потому что это самая элементарщина из веб.

Ну так веб для паскаля — не единственная область, это тебе не PHP.

hobbit ★★★★★
()
Ответ на: комментарий от Stremitelnyj

А парсинг скрапинг на котором я специализируюсь это лабуда потянет нормально?

Чо парсить надо? XML, JSON, HTML? Первые два я лично делал — никаких проблем не было. Для HTML некоторые применяют загрузку в браузер или примитивные парсеры самопальные/из интернета, но можно использовать http://htmlp.sourceforge.net/

byko3y ★★★★
()
Ответ на: комментарий от Stremitelnyj

Волны падали вниз стремительным домкратом...

Вся суть.

Сначала выносим приговор и вешаем ярлык. Потом, когда ВНЕЗАПНО у оппонентов появляются вопросы, бежим в википедию срочно узнавать, на что именно мы повесили ярлык. На третьей стадии начинаем сами задавать вопросы, с которых порядочный человек бы начал (хотя всё ещё называем объект «лабудой», ибо подсознание не хочет признавать факт лажи).

Ушел в омерзении с этого говносайта в 2013

Тоже, наверное, не смог ответить на пару-тройку неудобных вопросов?

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Самое смешное, что у турбо паскаля в девяностых уже были человеческие модули. Которые в C++ завезли вот только что в последний стандарт, и ещё лет 10 будут внедрять.

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

В классических плюсах сотни модулей заменяются на произвольное количество неймспейсов(а их можно как хочешь писать и делать произвольные композиции) и хидеры, что тоже можно писать как хочешь, собирая в них нужные декларации. То есть в этом смысле плюсы,за счет гибкости, позволяют декомпозировать код лучше, чем языки с явными модулями.

То есть если в языке есть модули, там должна быть и возможность композиции деклараций других модулей в новый модуль. А этого вроде нигде нет.

alysnix ★★★
()
Ответ на: комментарий от alysnix

Нигде? В Java есть иерархия пакетов, в C# тоже что-то похожее есть…

Таки да, с иерархией было бы лучше. Но даже в «линейном» виде с модулями лучше, чем без них, они исключают огромное количество дурных ошибок и облегчают разрешение зависимостей.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

с плюсах я могу реализовать набор классов в одном файле, и нарисовать два хидера - один типа для системных и осободоверенных программеров, другой для прикладников. то есть одним дать полную видимость, другим только частичную и жить хорошо. как это сделать в яве или шарпе?

alysnix ★★★
()
Ответ на: комментарий от byko3y

там была не такая однозначная ситуация, и в 80-х у паскаля были отличные позиции.

Спасибо за развернутый ответ

pihter ★★★★★
()
Ответ на: комментарий от Stremitelnyj

но язык для обучения и в проекты сколько нибудь серьезные тащить не стоит.

Ты выждал пока я отойду и опять начинаешь? На прямые вопросы отвечать будешь?

pihter ★★★★★
()
Ответ на: комментарий от Stremitelnyj

но язык для обучения и в проекты сколько нибудь серьезные тащить не стоит.

маня, побежал показывать признаки «языка для обучения»

anonymous
()
Ответ на: комментарий от byko3y

и еще гора не совместимых друг-с-другом костылей с диким количеством сайд-эффектов.

- поправил.
Angular ещё туда-сюда.

Shadow ★★★★★
()

в игры иди, там всё ещё хуже, зато задачи интересные.

Thero ★★★★★
()
Ответ на: комментарий от seiken

Тогда лучше сразу перейти к аргументам

Так ты сам все написал )

один бинарь на выходе – это не про интерфейс

ты, вроде, неправильно меня понял. Я хотел аргументы про то, что «интерфейс из девяностых», в смысле GUI – этого достаточно

pihter ★★★★★
()
Ответ на: комментарий от alysnix

Честно говоря, не знаю. Но я даже в крестах стараюсь придерживаться принципа «один файл — один класс». Исключения бывают, но редко.

и нарисовать два хидера - один типа для системных и осободоверенных программеров, другой для прикладников. то есть одним дать полную видимость, другим только частичную и жить хорошо.

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

hobbit ★★★★★
()
Ответ на: комментарий от Shadow

Ты так вкусно плюсы тут расписываешь, что аж захотелось все мелкие тулзы с gui на них писать.

«Дорога, открытая всем» :)

hobbit ★★★★★
()
Ответ на: комментарий от ism

Делфи и Лазарус вещи в себе

С чего это они «вещи в себе»? Можно подключать родные библиотеки, можно сишные, автор Double Commander, вон, в свой проект gvfs затащил на радость тем, кому нужны всякие MTP.

Вот какой-нибудь Oracle Forms — это действительно вещь в себе.

Lazarus я использовал в паре с Python, где были недостающие библиотеки.

Можно узнать, каких именно библиотек не хватило, что их пришлось тащить даже не из сишки, а аж из питона?

hobbit ★★★★★
()
Ответ на: комментарий от alysnix

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

Спорно. Модула была хорошим языком, но деду Вирта уже тогда начали одолевать приступы минимализма. А в Обероне они его окончательно задавили.

На паскале плохо сказалось, что его долгие годы развивал единолично Борланд — это да.

hobbit ★★★★★
()
Ответ на: комментарий от byko3y
Ответ на: комментарий от alysnix

В классических плюсах сотни модулей заменяются на произвольное количество неймспейсов(а их можно как хочешь писать и делать произвольные композиции) и хидеры, что тоже можно писать как хочешь, собирая в них нужные декларации. То есть в этом смысле плюсы,за счет гибкости, позволяют декомпозировать код лучше, чем языки с явными модулями.

В сях линковка дурацкая. Жестко не опредлена и линковщик может немного своенравничать. Нет никаких гарантий что линковщик соберет все твои «модули» правильно, в отличии от паскаля, где с этим строго.

Поробуй напиши программу Hello, World на сях с использованием функции printf не указав заголовочник. При компилировании ругнется, но работать будет. Где он взял библиотеку с которой слинковать? Адрес функции? Сам догадался? А точно верно, не может ли тут быть ошибок?

Теперь попробуй повторить такое на паскале.

pihter ★★★★★
()
Ответ на: комментарий от hobbit

Это написал не он, а его оппонент. И того в глупость уже потыкали.

да я знаю: это его оппонент мне вчера написал

Я просто прошу мне разжевать что это значило, вдруг кто понял? Я после той фразы вообще чет-там ругнулся и плюнул :)

pihter ★★★★★
()
Ответ на: комментарий от pihter

Где он взял библиотеку с которой слинковать? Адрес функции? Сам догадался? А точно верно, не может ли тут быть ошибок?

Ты прямо мою любимую страшилку рассказал. (P.S. Ах да, я же тебе её и рассказывал. @alysnix, тоже почитай.)

Ещё можно дополнить, что используя одну и ту же библиотеку, но разных версий, и забыв заголовочник, можно либо получить ошибку, либо не получить.

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

P.S. Если что, я ни разу не против препроцессора, он позволяет в нестандартных ситуациях творить чудеса. Но для стандартных ситуаций должен быть более строгий и контролируемый механизм.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от pihter

Поробуй напиши программу Hello, World на сях с использованием функции printf не указав заголовочник. При компилировании ругнется, но работать будет.

не гони

hw.c:3:2: error: incompatible implicit declaration of built-in function ‘printf’ [-Werror]

anonymous
()
Ответ на: комментарий от pihter

Ну так, судя по всему, я ее от тебя и подцепил

встреча идиотов

anonymous
()
Ответ на: комментарий от anonymous

не гони

$ gcc main.c 
main.c: In function ‘main’:
main.c:2:3: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]
   printf("Hello, anon!\n");
   ^~~~~~
main.c:2:3: warning: incompatible implicit declaration of built-in function ‘printf’
main.c:2:3: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’

$ ls
a.out  main.c

$ ./a.out 
Hello, anon!

$ cat main.c 
int main(void) {
  printf("Hello, anon!\n");

  return 0;
}
pihter ★★★★★
()
Ответ на: комментарий от anonymous

Это ты уже постусловия ставишь. Я сделал заявление, ты обвинил меня во лжи, я доказал что был прав, теперь ты пытаешься подстроить исходное заявление под себя, чтоб не извиняться за ложное обвинение.

pihter ★★★★★
()

Вот не нравится мне размечать документы и объяснять машине по полчаса, почему и какая кнопка, где должна находиться

Бэкенд уже предлагали?)))

CryNet ★★★★★
()
Ответ на: комментарий от pihter

Я сделал заявление

нет, ты обосрался - компилятор С может бить по рукам не хуже поцкалевского.

anonymous
()
Ответ на: комментарий от anonymous

man -Werror

к тому же, в реальном мире, это не работает

pihter ★★★★★
()
Ответ на: комментарий от anonymous

Я сделал заявление

нет, ты обосрался - компилятор С может бить по рукам не хуже поцкалевского.

А где я говорил что не может? Я говорил что соберет и он собирает.

pihter ★★★★★
()

Учи react native я в мобильные разрабы

romanlinux ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.