Форум «Мир фантастики» — фэнтези, фантастика, конкурсы рассказов

Форум «Мир фантастики» — фэнтези, фантастика, конкурсы рассказов (https://forum.mirf.ru/index.php)
-   Компьютеры и гаджеты (https://forum.mirf.ru/forumdisplay.php?f=35)
-   -   Программирование (https://forum.mirf.ru/showthread.php?t=10348)

Skandal 03.02.2012 15:25

Осваиваю HTML, прям только что закончил первую лабу - это вообще первое, что я делал в HTML - восторгу нет предела, сам себе задаю вопрос, почему раньше не решил освоить этот предмет.

Vollmond 03.02.2012 16:29

Skandal, тебе еще предстоит много баттхертов.

Skandal 03.02.2012 16:48

Astair, ну да и пусть!

SpellCaster 03.02.2012 19:22

Astair, imho сейчас куда меньше, чем 5 леt tому

Vollmond 03.02.2012 23:11

SpellCaster, насчет 5 лет назад не знаю. Но сейчас хватает.
Во первых поначалу блочная верстка производит разрыв шаблона так как блоки могут стоять где угодно, но не там где нужно.
Во вторых браузеры интерпретируют стили как хотят. Особенно это касается осла.
Приоритетность стилей тоже иногда странности подкидывает.
Конечно, после познания всех тонкостей CSS все становится гораздо проще, но на этапе обучения дым из ушей обеспечен. У меня до сих пор идет.

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

Leto III 07.03.2013 19:40

Цитата:

Сообщение от Waterplz (Сообщение 1102997)
ололо

Возник вопрос: с точки зрения религии в няшном Си, что менее "ололо":

while(true) {
...
}

(из обсуждения пару страниц назад)
или

for (;;) {
...
}

(обнаруженное в одном из примеров WDDK)
?

sourse 11.03.2013 15:17

кто - нибудь знает, как в VBA использовать Averange для проверки расчетов

Скрытый текст - рекусия:
Option Explicit

Type trade
id As Integer
texta As String
textb As String
textc As String
textd As String
texte As String


End Type

Public Sub asp()
Dim a(0 To 11) As trade, i%, d!, y%, N%, p%, textd%, texte%

For i = 0 To 11


a(i).id = Cells(3 + i, 1)
a(i).texta = Cells(3 + i, 2)
a(i).textb = Cells(3 + i, 3)
a(i).textc = Cells(3 + i, 4)
a(i).textd = Cells(3 + i, 5)
a(i).texte = Cells(3 + i, 6)
Next i

For i = 0 To 11
Cells(3 + i, 7) = a(i).id
Cells(3 + i, 8) = a(i).texta
Cells(3 + i, 9) = a(i).textb
Cells(3 + i, 10) = a(i).textc
Cells(2 + i, 11) = a(i).textd
Cells(2 + i, 12) = a(i).texte
Next i

For i = 0 To 11
textd = factorial(i)
Cells(3 + i, 5) = textd

Next i
For i = 0 To 11
Cells(3 + i, 5) = textd
textd = Fibonacci(i)
Cells(3 + i, 6) = textd


Next i
End Sub

Function factorial(N As Integer) As Integer
If N = 0 Then
factorial = 1
Else
factorial = N - factorial(N - 1)
End If
End Function
Function Fibonacci%(N%)

If N <= 1 Then
Fibonacci = 1
Else
Fibonacci = Fibonacci(N - 1) + Fibonacci(N - 1)
End If
End Function




Необходимо найти сумму в Cells(2 + i, 11) = a(i).textd
Cells(2 + i, 12) = a(i).texte при помощи рекурсии

Skandal 11.03.2013 19:25

Нужен совет. Решил освоить пргрмирвние, на глаза попалась книга "Python - программирование для системного администратора Unix" (ну или как то так) - почитал, понравилось. Везде пишут про простоту питона, в связи с чем вопрос, не опасно ли начинать изучать програмирование с такого языка? Не будет ли проблем, допустим, если я на перл захочу перейти.

Leto III 11.03.2013 19:34

Цитата:

Сообщение от sourse (Сообщение 1529393)
кто - нибудь знает, как в VBA использовать Averange для проверки расчетов

Как-то так:
Average(Range("A1:A5"))
Можно нажав на нужном слове F1 почитать подробный хелп, а ещё можно, записав макрос, посмотреть, что получилось.

Цитата:

Сообщение от sourse (Сообщение 1529393)
Необходимо найти сумму в Cells(2 + i, 11) = a(i).textd
Cells(2 + i, 12) = a(i).texte при помощи рекурсии

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

Цитата:

Сообщение от Skandal (Сообщение 1529562)
Везде пишут про простоту питона, в связи с чем вопрос, не опасно ли начинать изучать програмирование с такого языка?

Не опасно. Скорее, наоборот.

Цитата:

Сообщение от Skandal (Сообщение 1529562)
Не будет ли проблем, допустим, если я на перл захочу перейти.

А зачем переходить на Perl? Ну хотя бы пару причин.

Skandal 11.03.2013 19:39

Цитата:

Сообщение от Leto III (Сообщение 1529567)
А зачем переходить на Perl? Ну хотя бы пару причин.

ну мало ли. Как написанно в книге - программирование очень субъективная вещь, и если на написание чего либо тратится много времени, то стоит задуматься о смене языка. У меня знакомый админ фряшный перл расхваливал просто капец как. Вот я и на всякий случай спрашиваю.

Leto III 11.03.2013 20:08

Цитата:

Сообщение от Skandal (Сообщение 1529573)
программирование очень субъективная вещь

Это сферическое в вакууме, когда пишешь для себя и только для себя. Как только в дело вступает заказчик (даже если это твой друг или коллега), субъективность становится чем-то, что нужно преодолевать.
В конечном счёте оценивается результат, а не способ его достижения. Вебсайт на Perl сделать быстрее, чем на C\C++, но на Ruby или PHP его сделать ещё быстрее... А главное - легко сопровождать и дорабатывать. Самое сложное в разработке ПО - не собственно разработка, а дальнейшее сопровождение. Для этого изобретаются всё новые ухищрения и ищутся "серебряные пули". Грубо говоря, написать программу может любой дурак, но только настоящий мастер может написать программу, которую сможет сопровождать любой дурак)))

Skandal 11.03.2013 20:11

Leto III, мне пргрмирование интересно в контексте unix-адмимнства. Всякие скрипты-автоматизаторы и т.д.

Leto III 11.03.2013 20:41

Skandal, насколько я знаю, для этих целей как раз и популярен питон.

metos 11.03.2013 20:47

такой вопрос - куратор дипломной работы выбрал задачу, которая должна быть реализована посредством ASP.net. Обсудив что собой представляет данная вещь с другим преподом, я понял что предстоит жесточайший гемор, ибо С# я не учил и с visual studio не знаком, а сама документация ASP представляет собой 1000 страничный документ, причем без перевода. Думаю надо поменять тему

Leto III 11.03.2013 21:21

metos, я писал на C# (до того как перешёл на JavaScript))), пользовался VisualStudio 2005-2010, но никогда и ни за что я не стал бы делать веб-проект на ASP.NET. Пара экспериментов в этой области заставили меня выучить PHP и не скажу, чтобы это оказалось хоть сколько нибудь трудно.

metos 11.03.2013 21:32

Leto III, так мне знающий человек и говорит, что выучить все это за 3 месяца нереально, и раз я php учил на прошлом курсе то было бы неплохо изменить тему

Терри П 12.03.2013 07:03

Цитата:

Сообщение от metos (Сообщение 1529653)
Leto III, так мне знающий человек и говорит, что выучить все это за 3 месяца нереально, и раз я php учил на прошлом курсе то было бы неплохо изменить тему

Выучить можно и за месяц, благо примеры для любого языка есть. Другое дело если ломать себе голову нет особой мотивации кроме диплома, то лучше тогда поменять тему. ИМХО.

sourse 12.03.2013 10:47

[QUOTE=Leto III;1529567]Как-то так:
Average(Range("A1:A5"))
Можно нажав на нужном слове F1 почитать подробный хелп, а ещё можно, записав макрос, посмотреть, что получилось.


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

Вложение 13058

Тут не которые вопросы по поводу рекурсии где надо задать функцию в основном цикле, т.к. при изменении в формуле выдает ошибку 28 а так же командам Vba sum

Leto III 12.03.2013 11:33

sourse, рекурсию нужно как-то так реализовывать (считает начиная с нижней клетки вверх до первой, где встретит нечисловое значение):

Цитата:

Function MySum(c as Cell)
If Not IsNumeric(Cell.Offset(-1).Value) Then
Return 0
Else Return c.Value + MySum(Cell.Offset(-1))
End If
End Sub
MS Office не юзаю, поэтому проверить не могу. Среднее значение рекурсивно навскидку только с накапливанием в переменную кол-ва шагов, то есть то же, но со счётчиком, увеличивающимся с каждым вызовом MySum на 1, а потом делим полученную сумму на число шагов из счётчика.

Терри П 12.03.2013 11:38

Цитата:

Сообщение от Leto III (Сообщение 1529802)
sourse, рекурсию нужно как-то так реализовывать (считает начиная с нижней клетки вверх до первой, где встретит нечисловое значение).

А нафига там рекурсия-то? Обычный while. :vile: VB давно не извращался, но навскидку будет что-то вроде

Function MySum(c as Cell)
var sum = 0;
var i = 0;
While(IsNumeric(Cell.Offset(-i).Value)) Then
sum = sum + Cell.Offset(-i).Value;
i++;
End While
Return sum;
End Sub

Как-то, хотя синтаксис могу и наврать.

sourse 12.03.2013 12:04

Цитата:

Сообщение от Терри П (Сообщение 1529803)
А нафига там рекурсия-то? Обычный while. :vile: VB давно не извращался, но навскидку будет что-то вроде

Function MySum(c as Cell)
var sum = 0;
var i = 0;
While(IsNumeric(Cell.Offset(-i).Value)) Then
sum = sum + Cell.Offset(-i).Value;
i++;
End While
Return sum;
End Sub

Как-то, хотя синтаксис могу и наврать.

Тут нужно именно рекурсивным методом(одно из основных условий). Проблема в реализации. И еще как при помощи VBA(excel) Sum проверить расчеты

Leto III 12.03.2013 13:13

Цитата:

Сообщение от sourse (Сообщение 1529810)
И еще как при помощи VBA(excel) Sum проверить расчеты

Чувааак, если ты сумму значений столбца в Экселе посчитать сам не можешь, может не стоило и браться?)))

Sum(A1:A5) считает сумму ячеек от А1 до А5 (то есть в столбце А с 1 по 5)
Average(A1:A5) по-идее делает то же, только считает среднее арифметическое, а не сумму.

Это можно даже руками не писать, а выделив пустую ячейку за пределами таблицы нажать на знак "=" вверху, где значение ячейки редактируется - для подстановки формулы и выбрать её из списка. В русскоязычном Экселе SUM() будет выглядеть как СУММ(), но, насколько я помню, английское написание тоже работает (более того, был какой-то глюк, где только при английском написании формула работала). Выбрав формулу, мышью выделяешь нужный диапазон, для подстановки в формулу и нажимаешь ОК.

sourse 12.03.2013 14:18

Цитата:

Сообщение от Leto III (Сообщение 1529827)
Чувааак, если ты сумму значений столбца в Экселе посчитать сам не можешь, может не стоило и браться?)))

Sum(A1:A5) считает сумму ячеек от А1 до А5 (то есть в столбце А с 1 по 5)
Average(A1:A5) по-идее делает то же, только считает среднее арифметическое, а не сумму.

Это можно даже руками не писать, а выделив пустую ячейку за пределами таблицы нажать на знак "=" вверху, где значение ячейки редактируется - для подстановки формулы и выбрать её из списка. В русскоязычном Экселе SUM() будет выглядеть как СУММ(), но, насколько я помню, английское написание тоже работает (более того, был какой-то глюк, где только при английском написании формула работала). Выбрав формулу, мышью выделяешь нужный диапазон, для подстановки в формулу и нажимаешь ОК.

Тем не менее попробовать все равно стоит.

Leto III 12.03.2013 14:45

Цитата:

Сообщение от sourse (Сообщение 1529839)
Тем не менее попробовать все равно стоит.

Ну ты хоть отпишись тогда о результатах, а то мне уже и самому любопытно стало))

sourse 12.03.2013 15:57

Считать - считает, немного с багами

Leto III 12.03.2013 16:16

Что за баги?

И мне вот ещё стало интересно, почему именно VBA? Ведь MS Office стоит денег, и это при том, что в любом современном браузере, например, есть панель JS... Да даже если питать особое пристрастие к VB, то есть старый добрый VBS - файлы с расширением .vbs под виндой исполняются без дополнительных телодвижений. Вероятно, это наследие пиратского прошлого, когда Офис на каждом домашнем компе стоял...

sourse 12.03.2013 16:43

Цитата:

Сообщение от Leto III (Сообщение 1529870)
Что за баги?

И мне вот ещё стало интересно, почему именно VBA? Ведь MS Office стоит денег, и это при том, что в любом современном браузере, например, есть панель JS... Да даже если питать особое пристрастие к VB, то есть старый добрый VBS - файлы с расширением .vbs под виндой исполняются без дополнительных телодвижений. Вероятно, это наследие пиратского прошлого, когда Офис на каждом домашнем компе стоял...

На вба нам задавали в универе делать, а баги в основном (№6. №28 при измении формул)

Leto III 12.03.2013 16:47

Цитата:

Сообщение от sourse (Сообщение 1529891)
На вба нам задавали в универе делать

Вот я потому и ворчу, что в универе. Или они вам M$ Office бесплатно раздают? Хотя даже в этом случае навязывание конкретного коммерческого продукта не делает им чести.

Цитата:

Сообщение от sourse (Сообщение 1529891)
а баги в основном (№6. №28 при измении формул)

Текст сообщения об ошибке наверняка более информативен, чем её номер ;)

sourse 12.03.2013 16:53

Цитата:

Сообщение от Leto III (Сообщение 1529895)
Вот я потому и ворчу, что в универе. Или они вам M$ Office бесплатно раздают? Хотя даже в этом случае навязывание конкретного коммерческого продукта не делает им чести.


Текст сообщения об ошибке наверняка более информативен, чем её номер ;)

№6 run time
№28 out stack space

Терри П 12.03.2013 17:00

Цитата:

Сообщение от Leto III (Сообщение 1529895)
Или они вам M$ Office бесплатно раздают? Хотя даже в этом случае навязывание конкретного коммерческого продукта не делает им чести.

Увы, добрая половина языков программирования это конкретные коммерческие продукты (#NET,DELPHI, ORACLE, MSQL Server и т.д.).

P.S. А бесплатные версии M$ Offic'а существуют, хоть их сложно достать. Например, у меня стоял Started, который гнал онлайн рекламу, причем он был 100% бесплатным. А универам и студентам большинство программ на халяву раздают. Есть даже спец.лицензии под это дело.
P.P.S. Да, я в курсе что DELPHI и иже с ними не правильно по гамбурскому счету называть ЯП, а ORACLE и MSQL Server это вообще СУБД.

sourse 12.03.2013 17:02

Цитата:

Сообщение от Терри П (Сообщение 1529906)
Увы, добрая половина языков программирования это конкретные коммерческие продукты (#NET,DELPHI и т.д.).

P.S. А бесплатные версии M$ Offic'а существуют, хоть их сложно достать. Например, у меня стоял Started, который гнал онлайн рекламу. А универам и студентам большинство программ на халяву раздают.

Наш универ сотрудничает с Microsoft- отсюда все пироги

Leto III 12.03.2013 17:22

Цитата:

Сообщение от sourse (Сообщение 1529900)
№6 run time

VBA Run-time error 6: Overflow
и
№28 Out of stack space
очевидно

Первая намекает на переполнение типа данных, например в тип, объявленный как Integer на практике пишется значение типа Long
Вторая, скорее всего, говорит о том, что рекурсия слишком глубока. Сколько раз вызывается рекурсивно MySum?
Может, код под спойлер с указанием, на каких строках какие баги вылетают?

Цитата:

Сообщение от Терри П (Сообщение 1529906)
Увы, добрая половина языков программирования это конкретные коммерческие продукты (#NET,DELPHI и т.д.).

Это всё из-за засилия IDE - мало какой программист на C# сумеет писать код без VisualStudio, то же и с Delphi. Более того, судя по тому, что я читаю в инете, даже на PHP и JS многие не могут без IDE, что уже кажется слегка ироничным. К бесплатному PHP покупать PHPStorm, а к JS - SublimeText или там NetBeans. Я вот так и не смог с Notepad++ ни на что перебраться - отвлекают спистоперделки ненужные... Хотя когда-то (C#) тоже без IDE был как без рук.

Цитата:

Сообщение от Терри П (Сообщение 1529906)
А универам и студентам большинство программ на халяву раздают. Есть даже спец.лицензии под это дело.

Логично: первая доза - бесплатно.

sourse 12.03.2013 17:43

Цитата:

Сообщение от Leto III (Сообщение 1529920)
VBA Run-time error 6: Overflow
и
№28 Out of stack space
очевидно

Первая намекает на переполнение типа данных, например в тип, объявленный как Integer на практике пишется значение типа Long
Вторая, скорее всего, говорит о том, что рекурсия слишком глубока. Сколько раз вызывается рекурсивно MySum?
Может, код под спойлер с указанием, на каких строках какие баги вылетают?

Скрытый текст - собсвенно код:
Option Explicit

Public Type trade
id As Integer
texta As String
textb As String
textc As String
textd As String
texte As String
End Type

Public Sub asp()
Dim a(0 To 11) As trade, i%, d!, y%, N%, p%, textd%, texte%

For i = 0 To 11


a(i).id = Cells(3 + i, 1)
a(i).texta = Cells(3 + i, 2)
a(i).textb = Cells(3 + i, 3)
a(i).textc = Cells(3 + i, 4)
a(i).textd = Cells(3 + i, 5)
a(i).texte = Cells(3 + i, 6)
Next i

For i = 0 To 11
Cells(3 + i, 7) = a(i).id
Cells(3 + i, 8) = a(i).texta
Cells(3 + i, 9) = a(i).textb
Cells(3 + i, 10) = a(i).textc
Cells(2 + i, 11) = a(i).textd
Cells(2 + i, 12) = a(i).texte
Next i

For i = 0 To 11
"textd = factorial(i)" №6 *over flow
Cells(3 + i, 5) = textd

Next i
For i = 0 To 11
Cells(3 + i, 5) = textd
textd = Fibonacci(i)
Cells(3 + i, 6) = textd


Next i
End Sub

Function factorial(N As Integer) As Long ' (èëè Variant)

If N = 0 Then
factorial = 1
Else
" factorial = factorial(N + 1) - N" out of stack space при изменении в скобках на + over flow* при умножении
End If
End Function
Function Fibonacci(N%)

If N = 0 Then
Fibonacci = 1
Else
Fibonacci = Fibonacci(N - 1) + Fibonacci(N - 1) out of stack space при изменении в скобках на +
End If
End Function


Leto III 12.03.2013 18:57

Цитата:

Сообщение от sourse (Сообщение 1529932)
Public Type trade
id As Integer
texta As String
textb As String
textc As String
textd As String
texte As String
End Type

Имелась в виду структура строки для таблицы? Тогда так понятнее:
Цитата:

Public Type TableRow
Id As Integer
City As String
Trade As String
Time As Date
Cost As Currency
End Type
Далее пользователь вводит в форму или читаем с листа (как - можно посмотреть с помощью макроса) не менее 10 таких TableRow, получаем массив типа TableRow:
Цитата:

Dim R() as TableRow
В цикле* обходим массив от 0 до конца, выводя данные из каждой i в ячейки таблицы:
Цитата:

For i = 0 To UBound(R)
'Тут нагугли сам, как в ячейки вставлять, что-то в таком роде:
Cells(2 + i, 1).Value = R(i).Id
Cells(2 + i, 2).Value = R(i).City
Cells(2 + i, 3).Value = R(i).Trade
Cells(2 + i, 4).Value = R(i).Time
Cells(2 + i, 5).Value = R(i).Cost
'2 + i это начиная с 3й строки если
'можешь попробовать так Range("A" & i & ":" & "E" & i) = R(i)
'для массивов это работало вроде
Next i
И потом рекурсивно посчитать суммарную стоимость из уже имеющегося R() как-то так:
Цитата:

Function MySum(j as Integer) as Currency
If j >= 0 Then
Return R(j).Cost + MySum(j - 1)
Else
Return 0
End If
End Sub

Dim sum as Currency
sum = MySum(UBound(R))
Среднее арифметическое:
Цитата:

Dim avg as Currency
avg = sum / UBound(R)
*NB: Цикл по-идее лишний - вывод в ячейки можно прямо в MySum делать, но так понятнее должно быть

sourse 12.03.2013 19:48

Скрытый текст - вот оно:
Примечание 1. Описание типа данных Type и все процедуры создаются в модуле, а не на листе.
Алгоритм работы программы.
1. На листе 1 создать таблицу с данными и затем их считать и вывести на Листе 2 или Листе 1.
Примечание 2. Можно предусмотреть непосредственный ввод данных в программе.
2. Применяя рекурсию, найти суммарные и средние затраты по всем товарам. Результаты вывести на лист.
Примечание 3. Рекурсию реализовать в виде процедуры – функции.
3. Отсортировать выведенную таблицу по полю время доставки по любому критерию и результат вывести на лист.
4. Используя команду Excel SUM (сумма) в созданной процедуре, проверить правильность полученных суммарных и средних значений.
Варианты заданий.
1. База данных имеет вид
№ пп
Производитель товара Покупатель Товар Стоимость Затраты на доставку



1.1. Определить суммарную стоимость товара, используя рекурсию.
1.2. Отсортировать таблицу по полю Товар.
1.3. Используя команду Excel AVERAGE (среднее) в созданной процедуре, проверить правильность полученных суммарных и средних значений.
1.4. Определить суммарные затраты на доставку продукции для каждого Производитель товара.




Пытался создать что-то вроде этого, непонятно как описать sum в цикле программы (если это нужно)

Leto III 12.03.2013 20:16

Если речь про
Цитата:

Сообщение от sourse (Сообщение 1530081)
Используя команду Excel SUM (сумма) в созданной процедуре, проверить правильность полученных суммарных и средних значений.

то я не помню, как программно вызвать формулы, но если записать макрос, то можно посмотреть. В программе SUM описывать не нужно - это встроенная формула Эксель.

Макрос записывается нажатием на кнопку с красным кругом, как REC на магнитофоне, на одной из панелей Эксель (вид - панели инструментов). Пока эта кнопка нажата, ваши действия в Экселе - выделения ячеек, их редактирование и тд и тп записываются в виде программы на VBA. После отжатия кнопки, полученный скрипт можно сохранить и открыть - в нём будут программные аналоги ваших действий.
Для применения "команды Экселя SUM" нажимаем REC (красный кружок) и мышкой применяем формулу (через нажатие "=" вверху поля редактирования значения ячейки и выбора из списка формулы СУММ) к диапазону ячеек. Потом снова нажимаем REC для остановки записи, сохраняем полученный скрипт и открываем его для исследования. То же со СРЗНАЧ (или как там назван AVERAGE) - можно просто СУММ заменить на AVERAGE.

Vollmond 13.03.2013 01:08

Цитата:

Сообщение от Skandal (Сообщение 1529573)
ну мало ли. Как написанно в книге - программирование очень субъективная вещь, и если на написание чего либо тратится много времени, то стоит задуматься о смене языка. У меня знакомый админ фряшный перл расхваливал просто капец как. Вот я и на всякий случай спрашиваю.

Я вот последние годы из шарпа не вылезал. А осенью появилась хорошая перспектива и пришлось пересаживаться на Java. Которая как шарп, но многие простые вещи в ней делаются сложнее. В общем говоря, первый месяц я очень сильно плевался.

Так вот. Прошло несколько месяцев и мне надо было написать небольшую лабу на двух языках сразу. И мне было страсть как неудобно писать на шарпе.

Я это к тому, что тут вопрос привычки и только.
Цитата:

Сообщение от Leto III (Сообщение 1529920)
Это всё из-за засилия IDE - мало какой программист на C# сумеет писать код без VisualStudio, то же и с Delphi. Более того, судя по тому, что я читаю в инете, даже на PHP и JS многие не могут без IDE, что уже кажется слегка ироничным. К бесплатному PHP покупать PHPStorm, а к JS - SublimeText или там NetBeans. Я вот так и не смог с Notepad++ ни на что перебраться - отвлекают спистоперделки ненужные... Хотя когда-то (C#) тоже без IDE был как без рук.

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

Leto III 13.03.2013 07:58

Цитата:

Сообщение от Vollmond (Сообщение 1530211)
Я это к тому, что тут вопрос привычки и только.

Я бы согласился, если бы не интересный опыт. Я уже почти год как забросил шарп в пользу JS (Node.js) и, хотя пресловутых двух недель на изучение Erlang пока так и не сумел выделить, со всё большим интересом поглядываю в сторону ФП и всё большее недоумение вызывает ООП.
Это я всё к чему. Шарп и Ява - это как швейцарский нож, обмундирование современного солдата или там путешественника на все случаи жизни, включая портативный ядерный реактор, космический телескоп, тахионный приёмопередатчик, средства согреться в лютый мороз, добывать пищу из воздуха, фильтры для воды и даже небольшой танк-трансформер... Всё замечательно, за исключением того, что этот комплект монолитен - из него нельзя взять только нужное, а применяется он как правило не во льдах и пустынях, а в центре комфортного мегаполиса.
То есть, безусловно, такой богатый набор вызывает привыкание - без него потом трудно обходиться.
Другая потенциальная опасность таких "швейцарских ножей" прекрасно описана Джоелом Спольски в статье про "Закон дырявых абстракций".

Цитата:

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

Да, можно. Например, можно сравнить разработчика в IDE с Бэтменом - без своих многочисленных примочек он почти беспомощен, во всяком случае, на супергероя точно не потянет. В отличие от "блокнотного Брюса Ли"))) Ну и когда я вижу очередной жаркий спор, какая IDE круче, мне на ум приходит поговорка про плохого танцора...
(Нет, я согласен, что IDE удобная штука и не призываю отказываться от них. Просто взглянув с другой стороны не могу закрывать на это глаза.)

Терри П 13.03.2013 08:23

Цитата:

Сообщение от Leto III (Сообщение 1530252)
со всё большим интересом поглядываю в сторону ФП и всё большее недоумение вызывает ООП.

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

Цитата:

Сообщение от Leto III (Сообщение 1530252)
Всё замечательно, за исключением того, что этот комплект монолитен - из него нельзя взять только нужное, а применяется он как правило не во льдах и пустынях, а в центре комфортного мегаполиса.

Можно :smile: В java можно выкинуть все библиотеки кроме тех которые тебе необходимы. В результате функционала будет меньше чем в обычном С. :vile:

Цитата:

Сообщение от Leto III (Сообщение 1530252)
Да, можно. Например, можно сравнить разработчика в IDE с Бэтменом - без своих многочисленных примочек он почти беспомощен, во всяком случае, на супергероя точно не потянет. В отличие от "блокнотного Брюса Ли")))

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

Цитата:

Сообщение от Leto III (Сообщение 1530252)
мне на ум приходит поговорка про плохого танцора...

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

P.S. Если что, я тоже часто пишу на java просто в far'e вместо загрузки эклипса, но это мой выбор и я не пытаюсь его никому навязывать. Каждый программист выбирает для себя свой инструмент.

Leto III 13.03.2013 09:02

Цитата:

Сообщение от Терри П (Сообщение 1530260)
ООП может вызывать недоумение только если пытаться забивать гвозди микроскопом. ООП в первую очередь нужно для систем где кол-ва кода измеряется миллиардами строк и все они взаимодействуют между собой, вот там начинается мрак и ужас, когда пытаешься использовать что-то другое.

Согласен. Но в шарпе и яве ООП принудительный. Хотя есть и другие способы локализации функционала, например, модули...

Цитата:

Сообщение от Терри П (Сообщение 1530260)
В java можно выкинуть все библиотеки кроме тех которые тебе необходимы. В результате функционала будет меньше чем в обычном С.

Минуточку! А на клиентской машине придётся ставить какой-то особенный JRE? Тут ведь вопрос дистрибуции. Кстати, если .NET Framework хотя бы не вредит, то Java по-умолчанию открывает ворота разнообразной вирусне из браузера.

Цитата:

Сообщение от Терри П (Сообщение 1530260)
Не поверишь, строитель без инструментов вообще ничего не может. А уж про токаря работающего на станке вообще молчу. Конечно, можно заставить строителя делать дырки кухонным ножом, чтобы он не привыкал к своим инструментам.

Хм. Я как-то по наивности своей считал, что программист трудится интеллектом, а тут вон что оказывается)))
Внцом развития IDE является автогенерация кода, так что такой станок может однажды и вовсе избавить программиста от работы. ;)

Цитата:

Сообщение от Терри П (Сообщение 1530260)
Работа должна быть сделана качественно и быстро, а инструменты каждый имеет право выбрать сам.

Да кто же спорит? Я просто мнение своё высказал, а оспаривать его или нет (и зачем) - каждый решает сам.

Цитата:

Сообщение от Терри П (Сообщение 1530260)
Ситуация, когда вдруг программист окажется даже без бесплатной иде, и ему придется программировать все ручками скорее гипотетическая, чем реальная.

Это под виндой... А вообще, иной раз можно оказаться в консоли без средств для выживания)))

Цитата:

Сообщение от Терри П (Сообщение 1530260)
но это мой выбор и я не пытаюсь его никому навязывать. Каждый программист выбирает для себя свой инструмент.

Я чуть не в каждый пост вворачиваю обороты, вроде КМК или ПМСМ именно потому, что на форумах любое высказывание личного мнения почему-то воспринимают как его абсолютизацию, истину в последней инстанции и начинают яростно отрицать))) Брейк!

Терри П 13.03.2013 09:14

Цитата:

Сообщение от Leto III (Сообщение 1530269)
Согласен. Но в шарпе и яве ООП принудительный.

Просто и шарп и ява рассчитаны на определенный класс задач. Поэтому просто сделать небольшой сайтик ни на том ни на другом так же быстро как на php не получается. Всякие java для телефонов это по хорошему вообще совсем другая java. Так же как и JSP (аналог java'вского php), там даже ООП не обязателен по большому счету.

Цитата:

Сообщение от Leto III (Сообщение 1530269)
Минуточку! А на клиентской машине придётся ставить какой-то особенный JRE?

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

Цитата:

Сообщение от Leto III (Сообщение 1530269)
Внцом развития IDE является автогенерация кода, так что такой станок может однажды и вовсе избавить программиста от работы.

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

Цитата:

Сообщение от Leto III (Сообщение 1530269)
Это под виндой... А вообще, иной раз можно оказаться в консоли без средств для выживания)))

И программировать тоже в консоле? Такое бывает крайне редко и то обычно рядом всегда есть ноут с иде и прочими радостями. Ситуация работодатель дал только консоль и заставил писать программу на шарпе/jave две недели больно уж фантастическая.

Vollmond 13.03.2013 09:39

Цитата:

Сообщение от Терри П (Сообщение 1530260)
Можно В java можно выкинуть все библиотеки кроме тех которые тебе необходимы. В результате функционала будет меньше чем в обычном С.

Я бы даже сказал "нужно". По крайней мере, нас уверяли, что не стоит подключать весь пак пакетов и можно ограничиться нужными. Благо в том же Netbeans есть возможность в 2 нажатия подключить конкретный пакет когда он нужен.


Цитата:

Сообщение от Leto III (Сообщение 1530269)
Внцом развития IDE является автогенерация кода, так что такой станок может однажды и вовсе избавить программиста от работы. ;)

Ну а что, оч круто же. Зачем тратить время на написание гетеров/сетеров и прочих конструкторов когда думать там не надо, а среда может сделать это сама и за пару секунд?
Логику то она сама не напишет все равно )

Leto III 13.03.2013 09:49

Цитата:

Сообщение от Терри П (Сообщение 1530272)
Просто и шарп и ява рассчитаны на определенный класс задач. Поэтому просто сделать небольшой сайтик ни на том ни на другом так же быстро как на php не получается.

Ага. Т.о. есть некий порог до которого "швейцарский нож", наоборот, замедляет разработку. А проектов уровня "небольшой сайтик" - гораздо больше, чем уровня Bank of America.

Цитата:

Сообщение от Терри П (Сообщение 1530272)
Любой язык программирования тягает с собой определенный минимальный суповой набор (ну кроме ассемблера) или строго определенные требования к системе.

C\C++ за счёт этого только, КМК, и популярен до сих пор. Просто концепция с интерпретатором\ВМ оказалась популярнее компиляции под разные платформы.

Цитата:

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

Я даже как-то пытался использовать нечто подобное - это логичное продолжение темы ООП, но за 8 лет практики мне так и не довелось поработать над проектом, где ООП был бы по-настоящему нужен и полезен.

Цитата:

Сообщение от Терри П (Сообщение 1530272)
И программировать тоже в консоле? Такое бывает крайне редко и то обычно рядом всегда есть ноут с иде и прочими радостями. Ситуация работодатель дал только консоль и заставил писать программу на шарпе/jave две недели больно уж фантастическая.

Ситуация поправить код на сервере у меня несколько раз возникала, хотя и не на шарпе, конечно.
А после VisualStudio сложно писать в условном блокноте case-senitive названия классов и методов, например. Обычно-то их за тебя подставляет IDE. И привычку делать отступы и прочую разметку кода самому тоже взять неоткуда, поэтому мой первый JS-код после C# выглядел как-то так:
Цитата:

function foo(a,b)
{
if(a>=b) return a+1;
if(a==b) return bar(a-b);
}
а теперь так:
Цитата:

function foo (a, b) {
if (a >= b) return a + 1;
if (a == b) return bar(a - b);
}
Но гораздо важнее, что я вынужден был задуматься об этом, в то время как IDE успешно инкапсулировала от меня проблему разметки и читаемости кода.

Цитата:

Сообщение от Vollmond (Сообщение 1530284)
Я бы даже сказал "нужно". По крайней мере, нас уверяли, что не стоит подключать весь пак пакетов и можно ограничиться нужными. Благо в том же Netbeans есть возможность в 2 нажатия подключить конкретный пакет когда он нужен.

Давайте тогда уж продолжим идеи Delphi и будем таскать эти либы вместе с программой. Можно встраивать, как там, а можно как в .NET вроде начали делать - специальный инсталлер, ставящий только используемую приложением часть фреймворка.

Терри П 13.03.2013 10:26

Цитата:

Сообщение от Leto III (Сообщение 1530286)
Ага. Т.о. есть некий порог до которого "швейцарский нож", наоборот, замедляет разработку. А проектов уровня "небольшой сайтик" - гораздо больше, чем уровня Bank of America.

Просто есть молотки и есть микроскопы. И не надо их смешивать, даже если и то и другое называется ЯП. Естественно такой порог есть иначе Perl'ы и PHP давно бы вымерли.

И дело не в кол-ве, бюджет и важность одного проекта уровня Bank of America перекроет десятки тысяч проектов уровня сайтик Васи Пупкина.

Цитата:

Сообщение от Leto III (Сообщение 1530286)
C\C++ за счёт этого только, КМК, и популярен до сих пор. Просто концепция с интерпретатором\ВМ оказалась популярнее компиляции под разные платформы.

Опять дело о молотоке и микроскопе. Высокоуровневые языки программирования и низкоуровневые отличаются значительно сильнее чем легковой автомобиль и огромный пассажирский самолет, хотя формально это просто средства передвижения.
И с C++ бывает головняк даже с переходами на другую версию Win, не говоря уже о переезде на другую платформу, типа *nix.

Цитата:

Сообщение от Leto III (Сообщение 1530286)
но за 8 лет практики мне так и не довелось поработать над проектом, где ООП был бы по-настоящему нужен и полезен.

А вы хоть раз работали над проектом, где было хотя бы 50 программистов? :vile: Или хотя бы даже 15 программистов, работающих над одной и той же функциональностью в одно и тоже время? Видимо это проблема институтов, которые внушают, что ООП это очень круто и его надо использовать всегда и везде, и не учат что в некоторых случаях нужна отвертка, а в некоторых кувалда.

Цитата:

Сообщение от Leto III (Сообщение 1530286)
Ситуация поправить код на сервере у меня несколько раз возникала, хотя и не на шарпе, конечно.

Вот именно, что несколько раз за месяц работы и небольшой кусочек кода.

Цитата:

Сообщение от Leto III (Сообщение 1530286)
Давайте тогда уж продолжим идеи Delphi и будем таскать эти либы вместе с программой. Можно встраивать, как там, а можно как в .NET вроде начали делать - специальный инсталлер, ставящий только используемую приложением часть фреймворка.

Пофиг, зависит только от удобства пользователей. JRE на самом деле содержит примерно 0.01% от библиотек Java, которые только более-менее официальных просто дофига.

Leto III 13.03.2013 11:01

Цитата:

Сообщение от Терри П (Сообщение 1530294)
Просто есть молотки и есть микроскопы.

Одни используются для воздействия на предмет, а другие - для наблюдений и исследований? ;) Применяете клише, так делайте это с умом. Сравните молоток с перфоратором, что-ли...

Цитата:

Сообщение от Терри П (Сообщение 1530294)
И дело не в кол-ве, бюджет и важность одного проекта уровня Bank of America перекроет десятки тысяч проектов уровня сайтик Васи Пупкина.

Вы не замечаете противоречия в этом высказывании? Или есть какой-то объективный закон, согласно которому бюджеты в кол-вах BoA переходят в качество, а техники, отточенные на миллионах сайтиков так и остаются "некачественными"?

Это, кстати, отдельная большая проблема ИТ - понты. Все начинающие программисты сперва склонны романтизации сложности и масштабности проектов и технологий...

Цитата:

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

Я тоже люблю красиво звучащие фразы, но отношусь к ним с настороженностью именно из-за внешней красоты. Не поясните ли, в чём глобальная разница между ASM и PHP?

Цитата:

Сообщение от Терри П (Сообщение 1530294)
И с C++ бывает головняк даже с переходами на другую версию Win, не говоря уже о переезде на другую платформу, типа *nix.

В том и дело, что этот головняк бывает не с C\C++, а с API платформы, под которой он исполняется. Хелловорлд на C со stdout будет работать везде, где есть последний, а вот для хелловорлда на .NET\Java\PHP понадобится много всего.

Цитата:

Сообщение от Терри П (Сообщение 1530294)
Или хотя бы даже 15 программистов, работающих над одной и той же функциональностью в одно и тоже время?

Над одной функциональностью в одно время? Серьёзно? Разве что на олимпиадах))))) В вашей формулировке это соревнование получается, а не совместная работа. А так - да, в командах до 15 человек работал пару раз, но не считаю ООП "серебряной пулей". По-настоящему ООП может полезно там, где нет возможности полностью осознать, что происходит - после этакой Сингулярности проекта, когда никто уже не знает и не может узнать, что этот проект делает и как.

Цитата:

Сообщение от Терри П (Сообщение 1530294)
Пофиг, зависит только от удобства пользователей.

Поэтому .NET на винде гораздо перспективнее, начиная с Висты и XP SP3 - пользователю неудобно качать и устанавливать дополнительный софт.

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

Терри П 13.03.2013 12:05

Цитата:

Сообщение от Leto III (Сообщение 1530311)
Вы не замечаете противоречия в этом высказывании? Или есть какой-то объективный закон, согласно которому бюджеты в кол-вах BoA переходят в качество, а техники, отточенные на миллионах сайтиков так и остаются "некачественными"?

Разве я сказал "некачественными", я сказал не надо все мерить тупо кол-вом проектов. Да, на кол-во "проектов" на Access'е в размере одной табличке для бухгалтерии измеряется миллиардами, но это не значит что Access круче Oracle. :lol::lol::lol:

Цитата:

Сообщение от Leto III (Сообщение 1530311)
Это, кстати, отдельная большая проблема ИТ - понты. Все начинающие программисты сперва склонны романтизации сложности и масштабности проектов и технологий...

Я не склонен, да и опыт более лет 15. А сложности и масштабности проектов... я работаю в компании, которая возможно является мировым лидером в своей отрасли (не будем переоценивать, добавим слово "возможно") и масштабность там уровня основных систем компаний размера МТС и Мегафона в десятках стран.

Цитата:

Сообщение от Leto III (Сообщение 1530311)
Не поясните ли, в чём глобальная разница между ASM и PHP?

Кроме технологий, назначения, принципов программирования, задач? :vile: Во всем остальном. :vile:

Цитата:

Сообщение от Leto III (Сообщение 1530311)
В том и дело, что этот головняк бывает не с C\C++, а с API платформы, под которой он исполняется. Хелловорлд на C со stdout будет работать везде, где есть последний, а вот для хелловорлда на .NET\Java\PHP понадобится много всего.

Ладно? В любой ОС где есть поддержка Java и PHP все будет работать.

Цитата:

Сообщение от Leto III (Сообщение 1530311)
А так - да, в командах до 15 человек работал пару раз, но не считаю ООП "серебряной пулей".

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

Цитата:

Сообщение от Leto III (Сообщение 1530311)
По-настоящему ООП может полезно там, где нет возможности полностью осознать, что происходит - после этакой Сингулярности проекта, когда никто уже не знает и не может узнать, что этот проект делает и как.

По настоящему ООП полезна тем чтобы не доводить проект до Сингулярности. Просто поверьте на реально больших проектах, уровня сервисной системы всего Билайна или Мегафона, без ООП ничего не выйдет.

Цитата:

Сообщение от Leto III (Сообщение 1530311)
Поэтому .NET на винде гораздо перспективнее, начиная с Висты и XP SP3 - пользователю неудобно качать и устанавливать дополнительный софт.

А когда было иначе? Java в качестве создания просто офисных программок на винде никогда не была сильна.

Цитата:

Сообщение от Leto III (Сообщение 1530311)
Яверы сами часто признают дотнет более современной и развитой платформой, НО я всё чаще слышу о переходе шарперов на яву - с чем это может быть связано по-вашему?

Не знаю, кто признает. У Java есть огромный круг задач которые вы не знаете, и который вообще не пересекается с Net, например создания приложений работающих на многих ОС без всяких изменений, или сложных серверных систем, работающих на *nix'e в связке с Oracl'ом, на которых и работают Bank of America и им подобные. Или по вашему сложные серверные *nix системы на чем пишут?

Waterplz 13.03.2013 12:41

Цитата:

Да, на кол-во "проектов" на Access'е в размере одной табличке для бухгалтерии измеряется миллиардами, но это не значит что Access круче Oracle.
Аксесс это слишком сложно, давайте лучше наймем 4 экономистов и они будут рассчитывать себестоимость в Excel.
мимо реальная история

Leto III 13.03.2013 12:52

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Разве я сказал "некачественными", я сказал не надо все мерить тупо кол-вом проектов. Да, на кол-во "проектов" на Access'е в размере одной табличке для бухгалтерии измеряется миллиардами, но это не значит что Access круче Oracle.

А кто, в таком случае мерил кол-вом?)) Аксесс круче Оракла именно для "проектов" в размере одной таблички. Но ещё круче для этого SQLite, а ещё круче... простой файл или папка.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Я не склонен, да и опыт более лет 15.

А я и не про вас в данном случае. Просто есть такая проблема.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
масштабность там уровня основных систем компаний размера МТС и Мегафона

Вот видите, снова кол-во. Если бы вы написали: надёжность уровня НАСА или Боинг - другое дело... ;)

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Кроме технологий, назначения, принципов программирования, задач? Во всем остальном.

Программы на ассемблере не могут делать того, что программы на ПХП? О_о

Цитата:

Сообщение от Терри П (Сообщение 1530335)
В любой ОС где есть поддержка Java и PHP все будет работать.

Что вы называете "поддержкой Java в ОС"? У меня вот сейчас XP SP3 и ява не работает "из коробки".

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Вероятно, каждый отвечал за свой модуль в таких компандах

Да. Парное программирование, вроде, до сих пор экстремальная практика. Да и ООП в таком случае как бы ни при чём.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
По настоящему ООП полезна тем чтобы не доводить проект до Сингулярности.

Как это достигается с помощью ООП? Мне всегда казалось, что, наоборот, в ООП-проекте можно не зная, что и как работает писать реализацию по интерфейсу... Разработчик ведь не отвечает на вопрос "почему?" относительно интерфейсов. Архитектор сказал "так надо" и всё - копать от забора и до обеда.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Просто поверьте на реально больших проектах, уровня сервисной системы всего Билайна или Мегафона, без ООП ничего не выйдет.

Мне казалось, ява с её ООП - ещё новинка в такого рода системах, я думал, там до сих пор фортран или что-то вроде того...

Цитата:

Сообщение от Терри П (Сообщение 1530335)
А когда было иначе? Java в качестве создания просто офисных программок на винде никогда не была сильна.

Это всё понятно. Только популярность ЯП от многих факторов зависит, помимо его объективных достоинств или недостатков.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
который вообще не пересекается с Net, например создания приложений работающих на многих ОС без всяких изменений

Спорный вопрос - дотнет туда тоже проникает, AFAIK.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
сложных серверных систем, работающих на *nix'e в связке с Oracl'ом

Просто M$ пропихивает свою серверную ОС - это вопрос маркетинга, а не технологии.

Цитата:

Сообщение от Терри П (Сообщение 1530335)
Или по вашему сложные серверные *nix системы на чем пишут?

На Си и ассемблере (саму ОС). А серверный софт - зависит от многих факторов. И если это ява, то вовсе не обязательно, что это объективно оптимальное решение, а не дань моде.

sourse 13.03.2013 13:27

Код работает, но обнуляет все значения и стирает данные

Терри П 13.03.2013 13:31

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Программы на ассемблере не могут делать того, что программы на ПХП? О_о

Если считать по скорости разработки, поддержки и бюджета не могут. :vile: Да, можно за год даже тупой отверткой просверлить дырку в бетоне , но перфоратором всяко быстрее.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Что вы называете "поддержкой Java в ОС"? У меня вот сейчас XP SP3 и ява не работает "из коробки".

Тем что можно на ОС можно поставить в принципе.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Да. Парное программирование, вроде, до сих пор экстремальная практика. Да и ООП в таком случае как бы ни при чём.

ООП и системы контроля версий позволяет с одним файлом работать нескольким разработчикам сразу. И даже использовать тот функционал, которого ещё нет в природе. По сути ООП позволяет буквально один и тот же функционал разбить на кучу народу и сделать его значительно быстрее.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Как это достигается с помощью ООП?

Да, наша система из миллионов (если не миллиардов) строк кода вполне понятна и к Сингулярности не стремится.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Мне всегда казалось, что, наоборот, в ООП-проекте можно не зная, что и как работает писать реализацию по интерфейсу... Разработчик ведь не отвечает на вопрос "почему?" относительно интерфейсов. Архитектор сказал "так надо" и всё - копать от забора и до обеда.

Архитектор отвечает за дизайн, разработчик за его реализацию, в том числе и за интерфейсы. За исключением интерфейсов со внешними системами, но это уже совсем другое.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
Мне казалось, ява с её ООП - ещё новинка в такого рода системах, я думал, там до сих пор фортран или что-то вроде того...

В таких *nix системах стоит именно java в большинстве своем (по крайне мере у подобных заказчиков встречал только её) причем уже десяток лет. Чистое ООП давно устарело, в таких системах стоит EJB, что на порядок сложнее и головоломнее.

Цитата:

Сообщение от Leto III (Сообщение 1530347)
И если это ява, то вовсе не обязательно, что это объективно оптимальное решение, а не дань моде.

Данью моде она была лет десять назад, теперь это уже практически промышленный стандарт. Посмотрите на эту страницу ради интереса.

Leto III 13.03.2013 14:07

Цитата:

Сообщение от sourse (Сообщение 1530352)
Код работает, но обнуляет все значения и стирает данные

Текущий код - в студию - поглядим, чего это он))

Цитата:

Сообщение от Терри П (Сообщение 1530353)
Если считать по скорости разработки, поддержки и бюджета не могут. Да, можно за год даже тупой отверткой просверлить дырку в бетоне , но перфоратором всяко быстрее.

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

Цитата:

Сообщение от Терри П (Сообщение 1530353)
Тем что можно на ОС можно поставить в принципе.

Ну тогда это не ОС поддерживает яву, а ява - ОС)))

Цитата:

Сообщение от Терри П (Сообщение 1530353)
ООП и системы контроля версий позволяет с одним файлом работать нескольким разработчикам сразу. И даже использовать тот функционал, которого ещё нет в природе. По сути ООП позволяет буквально один и тот же функционал разбить на кучу народу и сделать его значительно быстрее.

Но всё равно же не будут несколько программистов писать один и тот же код - модуль, класс, ну или даже метод - да, но всё равно разные участки. Или нет? А так разделить труд можно и без ООП, и даже не только у программистов.

Цитата:

Сообщение от Терри П (Сообщение 1530353)
Архитектор отвечает за дизайн, разработчик за его реализацию, в том числе и за интерфейсы. За исключением интерфейсов со внешними системами, но это уже совсем другое.

Интересно. Я был уверен, что интерфейсы - часть дизайна, а не реализации. Вообще, разве программисту (в противоположность архитектору) на проекте такого масштаба есть что решать? От него ведь мало что зависит.

Цитата:

Сообщение от Терри П (Сообщение 1530353)
В таких системах стоит именно java в большинстве своем

Я думал, речь про что-то более близкое к телеком-железу.

Цитата:

Сообщение от Терри П (Сообщение 1530353)
Данью моде она была лет десять назад, теперь это уже практически промышленный стандарт.

Это, кстати, не опровергает моего высказывания. А вот NASA или Boeing используют ли Java?

Терри П 13.03.2013 14:31

Цитата:

Сообщение от Leto III (Сообщение 1530370)
А вот NASA или Boeing используют ли Java?

А як же. :lol::lol::lol:

Leto III 13.03.2013 14:46

Цитата:

Сообщение от Терри П (Сообщение 1530377)
А як же.

Чуток лукавите, я ведь не про офис и коммерцию, очевидно, спрашивал, а вот гугл на им же подсказанный запрос "boeing 787 programming language" выдаёт в топе статьи с заголовками о том, что возвращается язык Ада (как бы пугающе на русском это ни звучало)))
Ещё ада и немного ада с C\C++

sourse 13.03.2013 14:53

[QUOTE=Leto III;1530370]Текущий код - в студию - поглядим, чего это он))

Скрытый текст - что надо:
№ пп Производитель Покупатель Товар Стоимость Затраты на
доставку

Скрытый текст - code:
Option Explicit

Public Type TableRow
Id As Integer
manufacturer As String
buyer As String
product As String
price As Currency
Cost As Currency


End Type
Public Sub ty()

Dim r(0 To 11) As TableRow, i%, MySum%

For i = 0 To 11
r(i).Id = Cells(2 + i, 1)
r(i).manufacturer = Cells(2 + i, 2)
r(i).buyer = Cells(2 + i, 3)
r(i).product = Cells(2 + i, 4)
r(i).price = Cells(2 + i, 5)
r(i).Cost = Cells(2 + i, 6)

next i

For i = 0 To 11
Cells(2 + i, 7) = r(i).Id
Cells(2 + i, 8) = r(i).manufacturer
Cells(2 + i, 9) = r(i).buyer
Cells(3 + i, 10) = r(i).product
Cells(3 + i, 11) = r(i).price
Cells(2 + i, 12) = r(i).Cost




Next i

Dim avg As Currency
avg = MySum / UBound(r)


End Sub
Function MySum(j As Integer) As Currency
If j >= 0 Then
Return R(j).Cost + MySum(j - 1)
Else
Return 0
End If
End Function


дело в том что он выводит нули в расчетах

Терри П 13.03.2013 15:05

Цитата:

Сообщение от Leto III (Сообщение 1530379)
Чуток лукавите, я ведь не про офис и коммерцию, очевидно, спрашивал

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

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

Leto III 13.03.2013 15:08

Как-то так

Цитата:

Public Sub ty()

Dim r(0 To 11) As TableRow, i%, summa as Currency, avg As Currency

'Читаем из первой таблицы, предварительно созданной руками данные в массив структур TableRow
For i = 0 To 11
r(i).Id = Cells(2 + i, 1).Value
r(i).manufacturer = Cells(2 + i, 2).Value
r(i).buyer = Cells(2 + i, 3).Value
r(i).product = Cells(2 + i, 4).Value
r(i).price = Cells(2 + i, 5).Value
r(i).Cost = Cells(2 + i, 6).Value
Next i

'А теперь выводим рядом те же данные в таблицу №2, раз так надо
For i = 0 To 11
Cells(2 + i, 8) = r(i).Id
Cells(2 + i, 9) = r(i).manufacturer
Cells(2 + i, 10) = r(i).buyer
Cells(3 + i, 11) = r(i).product
Cells(2 + i, 12) = r(i).price
Cells(2 + i, 13) = r(i).Cost
Next i

summa = MySum(Ubound(R))
avg = summa / UBound(R)

End Sub
Цитата:

Сообщение от Терри П (Сообщение 1530385)
Я говорил, что в сложных промышленных коммерческих системах на больших Unix серверах и гигантских объемах данных для коммерции используется java в основном.

Я читал об этом много раз, но мне сложно понять, насколько это обусловлено той модой, которая была на яву лет 10 назад. То, что мода стала промстандартом, ещё не аргумент в пользу объективного превосходства одной технологии или ЯП над другими.
Паскалеобразная ада до сих пор удерживает нишу военных, космических и авиационных разработок и мне кажется, что это неспроста. Хотя, казалось бы:
Цитата:

Сообщение от Вика про ЯП Оберон
По утверждению Вирта, разработчики языка Java за несколько лет до её создания «изучили исходные коды Оберона и, в частности, исходные коды обероновских сборщиков мусора. Потом они испортили Оберон синтаксисом Си и назвали получившееся словом Java».

Мой вопрос: насколько успех ява определяется маркетингом, а насколько его реальными преимуществами?

Терри П 13.03.2013 15:48

Цитата:

Сообщение от Leto III (Сообщение 1530386)
То, что мода стала промстандартом, ещё не аргумент в пользу объективного превосходства одной технологии или ЯП над другими.

Уффф, поверь в J2EE есть очень много плюшек для огромных систем. Другой подобной системы работающий под Unix ОС я не знаю. С ней на этом рынке пытается конкурировать С#, но сильная привязка к Win и не бесплатность ему очень мешают.

Цитата:

Сообщение от Leto III (Сообщение 1530386)
Мой вопрос: насколько успех ява определяется маркетингом, а насколько его реальными преимуществами?

Успех ява сначала определялся уникальной идеей "раз написанный код, работает везде, даже в инете" + маркетинг. А сейчас - реальными преимуществами, в том числе бесплатностью, например. В бизнесе не дураки сидят, если бы стало ясно что другой язык будет обходится в разы дешевле, при той же функциональности, то перешли бы на него.
По крайне мере было бы известно о подобных попытках.

Цитата:

По утверждению Вирта, разработчики языка Java за несколько лет до её создания «изучили исходные коды Оберона и, в частности, исходные коды обероновских сборщиков мусора. Потом они испортили Оберон синтаксисом Си и назвали получившееся словом Java».
А C# в наглую стянул идеи у Java, ну и что? По мне главное результат. :smile: Оберон так и не стал большим чем интересным, но мало применимым языком, и не известно стал бы он аналогом Java, если собственно Java и не было, возможно сейчас была бы та же ситуация только Вирт обвинял бы в тех же грехах C#. Никто Вирту ведь не мешал проводит собственный маркетинг.

Leto III 13.03.2013 16:17

Цитата:

Сообщение от Терри П (Сообщение 1530391)
написанный код, работает везде, даже в инете

Но ведь этого и не нужно! Вы же сами упираете на Unix ОС, а виндовые серверы практически исключаем. Очевидно, что тут хватило бы C\C++, но маркетинг такой маркетинг. По моим субъективным ощущениям, успех явы и шарпа базируется на страхе перед ошибками при работе с памятью, а большая часть маркетинга основана на пугающем звучании safe\unsafe для бизнесменов, а не инженеров.
В конце концов, интерпретируемые языки, типа Python, PHP и JS успешно выполняются на не многим меньшем количестве платформ.
Вот я долго плевался от JS, делая сайты на PHP, а оказался такой красивый язык (а претензии к PHP остались)! И, к тому же, имеет неплохие шансы стать "нативным" на некоторых новых ОС.
А ещё набирают обороты ФЯП: Clojure, F#, Erlang...

Терри П 13.03.2013 16:31

Цитата:

Сообщение от Leto III (Сообщение 1530396)
В конце концов, интерпретируемые языки, типа Python, PHP и JS успешно выполняются на не многим меньшем количестве платформ.Вот я долго плевался от JS, делая сайты на PHP, а оказался такой красивый язык (а претензии к PHP остались)! И, к тому же, имеет неплохие шансы стать "нативным" на некоторых новых ОС.

Как вы не поймете простую вещь: Python, PHP и JS предназначены для крошечных и маленьких проектов. Там все на это рассчитано: ФП вместо ООП, динамические типы вместо строгих, глобальные переменные, игнорирование некоторых ошибок, общее пространство имен и т.п. Это все сильно экономит время разработки маленьких проектов и крошечных страничек, но чем больше проект тем больше эти преимущества превращаются в недостатки.
А C# и Java наоборот на мелкие проекты и не рассчитаны, и их огромные преимущества по отладке и строгому контролю превращаются в недостатки.

Цитата:

Сообщение от Leto III (Сообщение 1530396)
Но ведь этого и не нужно! Вы же сами упираете на Unix ОС, а виндовые серверы практически исключаем.

Иногда бывает нужно, например иметь клиента к Базе данных который будет работать одинаково на любой ОС в компании от макинтоша до дикой разновидности Linux.

Цитата:

Сообщение от Leto III (Сообщение 1530396)
По моим субъективным ощущениям, успех явы и шарпа базируется на страхе перед ошибками при работе с памятью

Это не страх, а жизненная необходимость для крупной системы. Я долго общался с человеком поддерживающим огромную систему на С++, они тратили огромную кучу времени и ресурсов на поиск подобных ошибок. И очень сильно мечтали о переходе на С#, но это было невозможно сделать исторически. Когда кривой код индийского программиста может уронить любой код в совсем другом модуле никак не связанным с первым это смерти подобно для отладки системы с миллионном строчек кода.

Цитата:

Сообщение от Leto III (Сообщение 1530396)
А ещё набирают обороты ФЯП: Clojure, F#, Erlang...

Крупные проекты на ФЯП делаться не будут, если они совершенно не поменяют методологию и сделают что-то другое чем ФЯП. Значит эти языки будут просто замещать PHP, JS и им подобные из ниши мелких программных проектов.

Leto III 13.03.2013 16:53

Цитата:

Сообщение от Терри П (Сообщение 1530401)
Как вы не поймете простую вещь: Python, PHP и JS предназначены для крошечных и маленьких проектов.

Размер проекта и ЯП в моей голове как-то не увязываются.
ОС - маленький проект? Почему же их пишут на Си, даже не на ++?

Цитата:

Сообщение от Терри П (Сообщение 1530401)
А C# и Java наоборот на мелкие проекты и не рассчитаны

Можно быстро накидать прототип или PoC на шарпе (и яве, наверное), поскольку там уже куча всего готовенького.

Цитата:

Сообщение от Терри П (Сообщение 1530401)
Иногда бывает нужно, например иметь клиента к Базе данных который будет работать одинаково на любой ОС в компании от макинтоша до дикой разновидности Linux.

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

Цитата:

Сообщение от Терри П (Сообщение 1530401)
Это не страх, а жизненная необходимость для крупной системы. Я долго общался с человеком поддерживающим огромную систему на С++, они тратили огромную кучу времени и ресурсов на поиск подобных ошибок. И очень сильно мечтали о переходе на С#, но это было невозможно сделать исторически.

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


Текущее время: 20:58. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.