OberonCore
https://forum.oberoncore.ru/

Помогите, пожалуйста, освоиться
https://forum.oberoncore.ru/viewtopic.php?f=35&t=3081
Страница 2 из 2

Автор:  Alexey Veselovsky [ Воскресенье, 19 Декабрь, 2010 18:24 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

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

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

PS. Когда говорят "я выучил этот язык" часто оказывается, что человек знает язык примерно на уровне написания Hello World'a и подсчета факториала. В лучшем случае -- на уровне институтских лабораторных. На самом деле это НЕ знание языка. Это называется -- видел этот язык.

Автор:  Валерий Лаптев [ Воскресенье, 19 Декабрь, 2010 18:26 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Программерское дело такое - постоянно надо учиться самостоятельно, по книжкам и без препода. Чем раньше начнешь учиться самостоятельно - тем лучше. Я вот в институте изучал Фортран, ПЛ-1 и Кобол. И что? Сейчас я пишу на С++ и читаю тексты на остальных языках, которых раньше просто не было. Поэтому за популярными языками гнаться не нужно. Лучше изучать принципы, а не конкретные языки. Список - он на любом языке список.

Автор:  Иван Денисов [ Воскресенье, 19 Декабрь, 2010 19:47 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Питон ИМХО самый легкий для изучения язык, сам спокойно выучишь за 2-3 недели основные вещи, если найдешь достойную задачу для тренировки, как выше было сказано.

Автор:  Info21 [ Воскресенье, 19 Декабрь, 2010 19:56 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Валерий Лаптев писал(а):
Лучше изучать принципы, а не конкретные языки. Список - он на любом языке список.
Принципы должны быть выражены. И список тоже.
Поэтому для максимальной эффективности основной язык должен быть ... Оберон :)

А все остальное сводится к тому, как выражать базовые идеи на целевом ЯП.
Самый рациональный и эффективный путь.

Так что молодой человек удачно (не слишком поздно) на КП попал.

Автор:  Alexey Veselovsky [ Воскресенье, 19 Декабрь, 2010 20:06 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

divan писал(а):
Питон ИМХО самый легкий для изучения язык, сам спокойно выучишь за 2-3 недели основные вещи, если найдешь достойную задачу для тренировки, как выше было сказано.

Не согласен. Базовые вещи, это что, хелло ворлд? Факториал? ;-)
Нормальной системы типов в питоне нет. Иммутабельности (а она могла бы это компенсировать) тоже нет. Питон категорически противопоказан начинающим. Продолжающим, впрочем, тоже.

Автор:  The Wicker Man [ Понедельник, 20 Декабрь, 2010 00:06 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Alexey Veselovsky писал(а):
Вы рискуете стать человеком который в теории знает множество языков, но вот написать толком ни на одном из них не может.

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

PS. Когда говорят "я выучил этот язык" часто оказывается, что человек знает язык примерно на уровне написания Hello World'a и подсчета факториала. В лучшем случае -- на уровне институтских лабораторных. На самом деле это НЕ знание языка. Это называется -- видел этот язык.

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

Автор:  Alexey Veselovsky [ Понедельник, 20 Декабрь, 2010 00:27 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

The Wicker Man писал(а):
Да, я не далеко ушел от уровня лабораторных, я и не мню себя профессионалом, но азы я знаю, и хочу развиватся, и не могу ни на чем остановится. Судя по многочисленным холиварам в интернете , хороших или плохих языков не существует вообще, выбор языка это видимо вопрос религии и рыцарского обета )

Ну, выбор языка скорее зависит от задачи :-)
Например если нужно плотно работать с ffmpeg'ом, пайпами, и системными вещами вообще (в узком смысле, т.е. зависимых от актуальных операционных систем), то в подавляющем большенстве случаев разумным выбором будет язык понимающий сишные хедеры. Т.е. это C, ObjC, C++. Альтернатив особых нет.

А вот скажем писать какой-нибудь сервер для массового обслуживания с некой хитрой логикой (ну, например флэш (ака rtmp) сервер, http-сервер, sip, xmpp (ака джаббер)) на тех же плюсах смысла особого не имеет, ведь есть erlang.

А вот если бы передо мною стояла задача написать нечто более эффективное нежели флэш для видеоконференций через браузер, то я бы скорее всего написал бы плагин для браузера(то что загружается и ставится ровно один раз) на каком-нибудь С++ (а может и не на нем, не знаю) а вот то, что грузится непосредственно с сайта каждый раз при заходе на страничку (т.е. эти миниприложения, которые нынче на флэше), они были бы, по крайней мере в первой версии, писаны на обероне однозначно. У оберона тут есть некоторые плюсы перед всем остальным:
1) Легко сделать его подмножество которое будет достаточно безопасно.
2) Легко написать его компилятор.
3) Легко написать мгновенно компилирующий компилятор.
4) Статическая типизация => меньше ошибок.
5) Поскольку компиляция быстрая, компилировать можно под целевую платформу, т.е. в нативный код. Причем это можно делать как на серверной стороне, так и на клиентской.

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

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

PS. Сильверлайт и JavaFX не альтернативы. Они существенно хуже.

Автор:  Info21 [ Понедельник, 20 Декабрь, 2010 00:50 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

The Wicker Man писал(а):
Да, я не далеко ушел от уровня лабораторных, я и не мню себя профессионалом, но азы я знаю, и хочу развиватся, и не могу ни на чем остановится. Судя по многочисленным холиварам в интернете , хороших или плохих языков не существует вообще, выбор языка это видимо вопрос религии и рыцарского обета )
Нет, не регилии.

Главная причина холиваров -- эмоциональная привязанность к первому ЯП, с помощью которого впервые было получено основание для распальцовки типа "профессионального программиста".
Хороших языков очень мало (Оберон с вариантами, плюс какой-нить ФЯ для расширения кругозора), поэтому адептам хреновых языков договориться невозможно.

Непонятно, что значит "знаю азы". Схема линейного поиска? Цикл Дейкстры? ...

Хотите развиваться -- неплохой способ взять "Алгоритмы и структуры данных" и проработать (может, не стоит сразу сильно углубляться в сортировки последовательностей и деревья, но начало посмотреть, т.е. сначала посмотреть начало каждой главы, потом уже рыть темы глубже).

Потом можно попытаться разобраться с устройством Блэкбокса, проверяя по Гамме и др. где какой паттерн. Например, взять модуль Files и понять его устройство и смысл. Сам Блэкбокс -- уникальное наглядное пособие.

Если при этом возиться с какими-нибудь конкретными проектиками, то здорово. Возьмите тут где-то свежий модулек, позволяющий скачивать http, -- и сразу масса небольших, но реальных задач: скачать файл и перекодировать его; найти в нем какие-то гиперссылки (скажем, на youtube) и сохранить их в виде списка в новом документе (у конкретных сайтов формат документов стандартизован).
И т.п.

Автор:  Info21 [ Понедельник, 20 Декабрь, 2010 00:53 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Alexey Veselovsky писал(а):
если нужно плотно работать с ffmpeg'ом, пайпами, и системными вещами вообще (в узком смысле, т.е. зависимых от актуальных операционных систем), то в подавляющем большенстве случаев разумным выбором будет язык понимающий сишные хедеры.
Не соглашусь. Сделать псевдомодули для хедеров -- не ахти какая задача. И неплохое упражнение для начинающих. Даже где-то обязательное. Затраты на это быстро окупаются.

Автор:  Alexey Veselovsky [ Понедельник, 20 Декабрь, 2010 01:07 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Info21 писал(а):
Alexey Veselovsky писал(а):
если нужно плотно работать с ffmpeg'ом, пайпами, и системными вещами вообще (в узком смысле, т.е. зависимых от актуальных операционных систем), то в подавляющем большенстве случаев разумным выбором будет язык понимающий сишные хедеры.
Не соглашусь. Сделать псевдомодули для хедеров -- не ахти какая задача. И неплохое упражнение для начинающих. Даже где-то обязательное. Затраты на это быстро окупаются.

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

Кроме того, возьмём позикс. Его например константы определены не числами, но сишными символами. При этом этот символ может быть функцией, может быть числом. Чилом при этом может быть разным. Например после обновления системы это число может легко поменяться. А может поменяться на функцию. В результате программа, использующая эти псевдомодули/биндинги станет не корректной. Короче, ну нафиг.

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

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

Автор:  Info21 [ Суббота, 24 Декабрь, 2011 09:12 ]
Заголовок сообщения:  Re: Помогите пожалуйста освоится

Кстати, модераторы забыли тут выписать по паре батогов Веселовскому с Ильиным за приставания к юношам.

А молодой человек ценные замечания потрудился сделать.

Автор:  Евгений Темиргалеев [ Четверг, 29 Декабрь, 2011 08:57 ]
Заголовок сообщения:  Re: Помогите, пожалуйста, освоиться

Сообщение jackbauer и ответ igor удалены в архив. Первое --- согласно п. 5.7 правил.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/