Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/41: Рейтинг темы: голосов - 41, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 1

Какой язык проще?

16.09.2015, 10:38. Показов 10668. Ответов 203
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу определиться с выбором языка для изучения новичку. что подскажете?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2015, 10:38
Ответы с готовыми решениями:

Какой язык посоветуете?
Недавно я изучил C#, мне этот язык очень понравился, и я бы хотел спросить совета, какой язык вы мне предложите изучать следующим, но уже...

Какой язык изучить?
Вот решил изучить язык С но не знаю выбрать С или С++ (или разницы нету)

Какой язык стоит выучить?
Знание из языков - Pascal. В универе будем учить делфи в следующем году Хочу летом подучить еще один язык. сомневаюсь: начать делфи или...

203
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 14:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от mporro Посмотреть сообщение
Во множественном наследовании реализаций смысла нет.
Цитата Сообщение от mporro Посмотреть сообщение
И его действительно нет ни в C#, ни в Java.
Да ладно в поддержке нескольких интерфейсов тоже нет смысла?
Просто в С++ это достигается другими средствами и более последовательно/логично.

Добавлено через 2 минуты
Цитата Сообщение от mporro Посмотреть сообщение
Я бы сказал, что любое несвязанное абстракцией имя глобально.
А я бы сказал глобоально/локально относительно чего? (если мыслить в не рамок реализации)
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.09.2015, 14:09
Цитата Сообщение от Avazart Посмотреть сообщение
Да ладно в поддержке нескольких интерфейсов тоже нет смысла?
Интерфейсы -- это механизм поддержки контрактов, поддержки системы типов, поддержки абстракций, а не реализаций.

В C++ сделано логично с точки зрения низкоуровневой реализации, это верно. Но смысла в наследовании реализаций от этого не прибавляется.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 14:16
Цитата Сообщение от mporro Посмотреть сообщение
Интерфейсы -- это механизм поддержки контрактов, поддержки системы типов, поддержки абстракций, а не реализаций.
В C++ сделано логично с точки зрения низкоуровневой реализации, это верно. Но смысла в наследовании реализаций от этого не прибавляется.
Интерфейс лишь лишнее слово, в С++ которое решили не вводить- достаточно наследования от абстрактных классов, в этом и логичность/последовательность.
Меньше слов- больше возможностей.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.09.2015, 14:48
Цитата Сообщение от Avazart Посмотреть сообщение
достаточно наследования от абстрактных классов
Нет, наследование от абстрактных классов избыточно. Достаточно наследования интерфейсов.

Цитата Сообщение от Avazart Посмотреть сообщение
Меньше слов- больше возможностей.
На самом деле, возможностей столько же.
От интерфейса наследуют, а реализации являются частью композиции.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.09.2015, 15:02
Avazart
По поводу глобальных переменных.

Любое имя, которое Вы можете использовать внутри абстракции -- процедуры, класса или функции -- не связывает это имя явно во входящих параметрах, является глобальным именем, глобальной переменной.
Например std::cout << "Hello Word!". Вы можете не передать в конструктор класса ничего про std::cout и в метод тоже ничего не передать, но код сработает успешно. Сработает, потому что имя std::cout глобально.

Про некоторый язык можно сказать, что он не допускает глобальных переменных, если все имена всегда являются входными параметрами. Если из метода нельзя бы было вызвать std::cout << "Hello Word!", не передав его в конструктор класса в качестве параметра или в метод, то можно было бы говорить, что в C++ недопустимы глобальные имена.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 15:27
Цитата Сообщение от mporro Посмотреть сообщение
Нет, наследование от абстрактных классов избыточно. Достаточно наследования интерфейсов.
Наследование избыточно? Зачем вводить понятие интерфейсов если есть наследование, в том числе и от абстрактных/базовых классов итп.

Цитата Сообщение от mporro Посмотреть сообщение
На самом деле, возможностей столько же.
От интерфейса наследуют, а реализации являются частью композиции.
Очевидно что больше ибо возможности интерфейсов реализуемы наследованием(множественным), а обратное не справедливо.
Цитата Сообщение от mporro Посмотреть сообщение
Про некоторый язык можно сказать, что он не допускает глобальных переменных, если все имена всегда являются входными параметрами.
Если не считать того факта что параметры могут передаваться по ссылке или указателю.

Цитата Сообщение от mporro Посмотреть сообщение
Про некоторый язык можно сказать, что он не допускает глобальных переменных, если все имена всегда являются входными параметрами.
Например? Вероятно этот некоторый язык не поддерживает ООП ибо члены класса можно отнести к глобальным переменным относительно метода этого класса.
Можно конечно сказать что мол this/self передается неявно в метод параметром, но той сути что он может меняется глобанльно из нескольких методов не меняет ибо
доступ происходит по указателю.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.09.2015, 15:42
Цитата Сообщение от Avazart Посмотреть сообщение
Зачем вводить понятие интерфейсов если есть наследование
Зачем использовать целые числа, если есть действительные?
Проще работать с интерфейсами и реализациями. Ясно представлять себе:где у Вас система типов и абстракций, а где кирпичики кода.

Цитата Сообщение от Avazart Посмотреть сообщение
Очевидно что больше
Совсем не очевидно. И, собственно, не больше, как я уже писал.
Наследование реализаций избыточно, потому что реализации можно включить в композицию.
Избыточность технологии C++ в том, что возможность наследования реализаций дублирует композицию. Самый, наверное, "хрестоматийный" пример -- это закрытое наследование, которое в точности является композицией реализации.

Цитата Сообщение от Avazart Посмотреть сообщение
Вероятно этот некоторый язык не поддерживает ООП ибо члены класса можно отнести
Нельзя.
Объектный подход не рассматривает методы в качестве абстракций. Методы -- это имена, с которыми связаны правила редукции. Глобальное имя можно рассматривать только в контексте объекта.
И я не говорю, что знаю такой язык, в котором нет глобальных имён. Я указываю, какими качествами должен этот самый свободный от глобальных переменных язык обладать. Только для практических целей он никому не нужен, скорее всего.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 15:59
Цитата Сообщение от mporro Посмотреть сообщение
Ясно представлять себе:где у Вас система типов и абстракций, а где кирпичики кода.
Для это нет необходимости вводить новое слово/синтаксис. Все это зависит (умение представлять/разделять) от программиста, а не от языка.

Цитата Сообщение от mporro Посмотреть сообщение
Нельзя.
Почему же? Методы те же функции, по чему то что касается функции не касается метода?
ООП и императивность подразумевает наличие "состояний"/глобальных имен.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
20.09.2015, 16:56
Цитата Сообщение от Avazart Посмотреть сообщение
Для это нет необходимости вводить новое слово/синтаксис.
Необходимости, конечно, нет. Программист может написать аккуратный код на C++ и не использовать множественного наследования реализаций. Но разделение на интерфейсы и реализации делает код нагляднее, его написание, тестирование и отладку удобнее.
Так же как вести учёт на складе удобнее в натуральных числах и вообще забыть о действительных.


Цитата Сообщение от Avazart Посмотреть сообщение
Почему же? Методы те же функции
К сожалению 90% программистов, работающих с объектными языками, использующими низкоуровневый подход к методам, так и думают. Думают, думают... И пишут процедурный код, зашумленный словами class, interface и т.д.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 17:30
Цитата Сообщение от mporro Посмотреть сообщение
Программист может написать аккуратный код на C++
Ну так любой программист должен быть аккурантым, хорошее качество...

Цитата Сообщение от mporro Посмотреть сообщение
и реализации делает код нагляднее, его написание, тестирование и отладку удобнее.
Я лично не вижу ничего из этого. В чем наглядность? От одного слова interface ничего не меняется.

Добавлено через 2 минуты
Цитата Сообщение от mporro Посмотреть сообщение
Так же как вести учёт на складе удобнее в натуральных числах и вообще забыть о действительных.
С этим не соглашусь, хранить количество в действиетльных числах не подабает.

Добавлено через 1 минуту
Цитата Сообщение от mporro Посмотреть сообщение
К сожалению 90% программистов, работающих с объектными языками, использующими низкоуровневый подход к методам, так и думают. Думают, думают... И пишут процедурный код, зашумленный словами class, interface и т.д.
Я не понимаю о чем вы. Вероятно о каких-то редких случаях.
Но вредких случаях иногда и без низкоуровневого подхода не обойтись.
ООП подразумевает использование классов, но использование классов не подразумевает ООП.
0
Заблокирован
20.09.2015, 18:14
Цитата Сообщение от hoggy Посмотреть сообщение
нет, это ответ на другой вопрос.
ответ на вопрос, который изначально задал этот гопник.
hoggy, возможно, тут недопонимание - С++ не является ОО-языком.

Цитата Сообщение от Avazart Посмотреть сообщение
Просто в С++ это достигается другими средствами и более последовательно/логично.
вкусовщина.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
20.09.2015, 18:23
А я вот не понял про глобальные переменные. Причем, хочется в первую очередь спросить mporro - насколько я ничего не помню из ТАПЛа, там вроде вводится модель, в которой свободные переменные берутся из некоего окружения, сопровождающего вычисление. В простонародии оно называется нэймспейс, и в некоторых языках является объектом первого класса. Так какие переменные считаются глобальными - любые свободные в данном терме? Или связанные в некотором явно выделенном нэймспейсе?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
20.09.2015, 18:35
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
возможно, тут недопонимание
нет места недопониманию.
человек и не собирался ничего понимать, или вообще обсуждать.
ему нужен был лишь предлог, что бы докалебаться до чего угодно,
и похулиганить.

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

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
С++ не является ОО-языком.
является, поскольку включает данную парадигму.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
20.09.2015, 18:37
ЗЫ ну и про
Цитата Сообщение от ValeryS Посмотреть сообщение
а ниче что компы по сути своей империтивны?
только жесткие команды понимают
Ниче. Сегодня императивны, завтра нет. Сегодня однопроцессорные, завтра мультикоры. Сегодня процессоры, завтра ПЛИСы. Вчера счеты и абаки а сегодня компы. Сегодня жесткие детерминированные, завтра квантовые.

А семантика языков остается, т.к. не привязана к реализации.
0
Заблокирован
20.09.2015, 18:43
Цитата Сообщение от hoggy Посмотреть сообщение
является, поскольку включает данную парадигму.
hoggy, Я и, думаю, что cybercitizen тоже, не считаю С++ ОО-языком => недопонимание.
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
20.09.2015, 19:05
Цитата Сообщение от hoggy Посмотреть сообщение
ему просто был нужен повод нагрубить
Сначала обоснуй, а потом и обо мне поговорим.

Не по теме:

Ev_Hyper, совершенно верно. Но как можно слепому человеку объяснить что такое цвет и как он выглядит? Очевидно, никак.

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
20.09.2015, 19:27
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Я и, думаю, что cybercitizen тоже, не считаю С++ ОО-языком => недопонимание.
вам реально не очевидно,
что этот персонаж пришел сюда с одной единственной целью:
задираться, и демонстрировать свою низкопробную культуру?

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

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

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

мне интересно ваше мнение:
вы действительно не осознаете, что чел пришел сюда,
что бы превращать это место в сортир?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2015, 19:38
Ага так типа сразу по ОО стало:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace System
{
    class Console 
    {
       public:
         static void WriteLine(const string& s); 
         {
             std::cout<< s << endl;
         }
        private:
           //   ostream cout_;
    };
}
 
 
 
namespace HelloWorld
{
    class Hello 
    {
        //public:
        static void Main() 
        {
            System::Console::WriteLine("Hello World!");
 
            System::Console::WriteLine("Press any key to exit.");
           // Console::ReadKey();
        }
    };
}
Реально ведь ничего не изменилось.

Всегда будут глобальные объекты типа stdout, экран(настройки экрана) итп и будут ли они классам,объектами,синглитонами или давать доступ через функции не суть...
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
20.09.2015, 19:42
Цитата Сообщение от hoggy Посмотреть сообщение
что бы превращать это место в сортир?
По тону можно понять откуда чел тявкает...
0
 Аватар для cybercitizen
204 / 26 / 5
Регистрация: 22.05.2015
Сообщений: 357
20.09.2015, 19:51
Цитата Сообщение от Avazart Посмотреть сообщение
Ага так типа сразу по ОО стало
а так?
Java
1
1.(+) 2;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2015, 19:51

Какой язык программирования лучше? (3)
Продолжение темы

какой язык программирования изучать?
На данный момент учу delphi, но кажется что этот язык сейчас не актуален. Есть огромное желание учиться программировать в сторону...

Какой язык программирования я придумал
Приветствую всех. Составил список целей. Интересует, существует ли в мире такой язык программирования, который я тут на фантазировал. ...

Какой язык лучше / прибыльнее?
И так, мне 16 лет, седня днем пойду подавать документы в техникум на программиста соответственно. И назрел вопрос какой язык...

Какой язык программирования выбрать?
Доброго времени суток ! Подскажите уважаемые форумчане - какой язык программирования выбрать для начального изучения? Да и вообще, какие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru