Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Java2 vs .Net

Автор: Guderian
Дата сообщения: 30.04.2003 09:16
rew

Цитата:
что нужно сохранить базовую функцию метода, но немного ее подкорректировать.

Если не хватает вызова base.SomeMethod, то это, имхо, проблема архитекторов либо базового класса либо наследника.


Цитата:
но закрытость кода в моем понимании это не недостаток с шарпа, это нездоровое жлобство со стороны м$

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


Цитата:
есть надежда что может со временем появится декомпилер и на c#

Ну. человеки, вы даете. Говорил уже не один раз. Anakrino (http://www.saurik.com/net/exemplar/), Salamander (http://www.remotesoft.com/salamander/).


Цитата:
угу, можно забубенить

Не можно, а нужно. Иначе этот спор никогда не будет закончен.


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

Враждующие кланы могут помогать друг-другу Наша же задача не опустить жабу или дотнет, а найти истину. А может она и не нужна. Пусть живут безмятежно
Автор: rew
Дата сообщения: 30.04.2003 11:48

Цитата:
Не можно, а нужно

окий, давайте подумаем что можно сделать, я бы с удовольствием поучаствовал
Автор: javaner
Дата сообщения: 28.05.2003 18:44
a pochemu tema zatihla to? mojet vse taki nachenm chto to mutit?
Автор: rew
Дата сообщения: 28.05.2003 19:27
тык все затихает, когда от разговоров нужно переходить к делу
а к замутить я и сча готов, правда сразу пердуперждаю, мой уровень как програмера в лучшем случае средний
Автор: javaner
Дата сообщения: 28.05.2003 20:12
tak pojzaluy podkinu prostuyu zadachku, ne znayu kakogo urovnya no dlya nachala soydet. nam i reshat. voobshem ona u menya gotova na java. ya ee napisal ochen davno, ne optimiziroval, kak nazivaetsa u burgov, brutal code. mogu izlojit chtob pro-javeri uludshili dlya borbi s inokomislishami sut takova, idet po n-oe kol-vo stranichek i fetchit datu i izlogaet vvide html/ili rabotaet kak server i klient, applet vse eto pokazivet. potom posmorim na .net versiyu. kto to budet sravnivat u sebya na kompe. togda porassujdaem.

esli che kidayte svoi zadachki. moy uroven toje v sredniy
Автор: mymuss
Дата сообщения: 29.05.2003 01:48
Мужики расслабтесь Попейте пива.
Перформанс тестов жаба/дотнет в инете шо порнухи.
Например:
http://www.middleware-company.com/j2eedotnetbench/
http://www.middleware-company.com/documents/j2eedotnetbenchmark.pdf (прямой линк на репорт).
Сырцы проги, которую они юзали, где-то там же.
Автор: Guderian
Дата сообщения: 29.05.2003 11:05
rew
Ну так апологеты java рассосались как-то быстро. Вот хоть javaner зашел.

javaner
Ничего не понял, кто куда идет, кто чего фетчит


Цитата:
esli che kidayte svoi zadachki. moy uroven toje v sredniy

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

mymuss

Цитата:
Перформанс тестов жаба/дотнет в инете шо порнухи.

Найди во всем треде хотя бы строчку, где обсуждался бы вопрос перфоманса.
Автор: javaner
Дата сообщения: 29.05.2003 11:24

Цитата:
Ничего не понял, кто куда идет, кто чего фетчит


a pravdo, sam shaz posmorel i niche ne ponyal hotel skazat server vse eto fetchit. mdee, esli korporativnie zakazi u tya, to uroven razniy u nas, ya voshe student tak chto davayte viberem chto to srednee. kak ya ponyal, ti predstavitel, .NETa? nashet tvoey zadachki, svuchit interesno i ktomu je iz realnoy jizni. nu prodoljim opisanie proyekta? kto tut eshe est?
Автор: rew
Дата сообщения: 29.05.2003 11:48
ну дык надо для начала определиться какого типа проэктище будим делать? клиент-сервер какой нить? или что?
Автор: Guderian
Дата сообщения: 29.05.2003 13:07
javaner

Цитата:
hotel skazat server vse eto fetchit

Опять попутал Фетчит как раз клиент.


Цитата:
to uroven razniy u nas, ya voshe student

Не страшно. Я потому согласился на это пойти, что
а) начинающие наберутся опыта, имхо для этого форумы и предназначаются, хотя многие об этом забывают
б) немного приблизимся к истине, т.е. я, например, постараюсь внести свою лепту и в жабскую часть (благо опыт был, правда года 2-3 назад бросил, по экономическим соображениями, это кстати о бесплатности linux+java).

rew

Цитата:
ну дык надо для начала определиться какого типа проэктище будим делать? клиент-сервер какой нить? или что?

Настольное приложение, имхо бессмысленно. Думаю, наиболее полезным будет cs с тонким клиентом. Осталось только выбрать субд. Для .нет ясно - mssql, для java, имхо, oracle, postgres.

2 все остальные
Это вообще кому-нибудь интересно?
Автор: rew
Дата сообщения: 29.05.2003 14:33
думаю что даже общая модель должна быть одинаковая...
зы что такое cs?
Автор: javaner
Дата сообщения: 29.05.2003 18:47

Цитата:
Опять попутал Фетчит как раз клиент.


net, ne poputal, klient toko pokazivaet chto server tam nafetchil s weba . u menya voshe server eto thread. prosipaetsa kajdie 12 chasov obnovit informaciyu.

toje soglasen nujno chto to tipa client-server (CS?). v GUI java yavno proigraet .NETu. tak sho, imho, doljni bit WEB klienti. kto nit predlagaet model stimulaci? rebyata, ya i eshe podrabativayu, tak sho otvechat ne tak bistro mogu. esli modeli ne budet mojem sdelat te kotorie predlojeni mnoyu i Guderian. u menya, tak kak server vsegda Live op idee, tam DB ne ispolzuetsa, no mojno chtob server vsu infu zapihnul v kakoy nit DB.


Guderian, ne mog bi ti podrobnee opisat svoyu model.

pasiba vsem. dlya menya etot topic ochen vajen, tak kak, sam predpochitayu i kak to emocionalno privazan k jave. hotya tupa konechno, no s .NETom nikogda ne rabotal. chto menya volnuet eto, chto v budushem naverno budu rabotat izkluchitelno windowsom, vot i zadumalsa...
Автор: lvovin
Дата сообщения: 29.05.2003 18:54
rew


Цитата:

Цитата:
Обязательное описание исключений - за такое бейсбольной битой по пальцам

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


Описание исключений в заголовке метода нарушает принцип локальности. Это пожалуй один из важнейших принципов ООП. Изменение в одном месте не должно затрагивать всю систему, а должно ограничиваться некоторыми локальными изменениями.

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

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


Цитата:

Цитата:
просто никакая поддержка классов коллекций

чего именно не хватило то? по моему там реализованы все классические виды коллекций.


Какие-то коллекции там присутствуют, но насколько удобно с ними работать?

Можно привести несколько простых задач и не увидеть нормального решения.
Например - на основе коллекции построить коллекцию *того же типа* (ArrayList -> ArrayList, LinkedList -> LinkedList, etc), где отобраны только элементы удовлетворяющие заданному критерию (например, значение больше некоторой константы). И чтобы код работал для любых типов лежащих в коллекции, особенно интересуют строки, числа, даты.

Сравнить полученный код с этим:
aCollection select: [:each | each > someConstant]



Цитата:

Цитата:
статическая типизация, требующая постоянного приведения типов (жуткое зло) и т.д.

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


Всмысле существующая система типов изначально концептуально поломана (а именно manifest static typing).
Явное приведение типов, неявное приведение типов, наличие нетипизированного null (само по себе большая дыра), примитивные типы данных, нерасширяемость типов, и т.д. и т.п.

--

Владимир.
http://www.smalltalk.ru
Автор: rew
Дата сообщения: 30.05.2003 05:18

Цитата:
Описание исключений в заголовке метода нарушает принцип локальности. Это пожалуй один из важнейших принципов ООП. Изменение в одном месте не должно затрагивать всю систему, а должно ограничиваться некоторыми локальными изменениями.

имха, если вы добавляете новое исключение в метод, вы меняете интерфейс. равно как если вы к примеру поменяете тип вызвращаемого параметра.
Автор: lvovin
Дата сообщения: 30.05.2003 18:00

Цитата:

Цитата:
Описание исключений в заголовке метода нарушает принцип локальности. Это пожалуй один из важнейших принципов ООП. Изменение в одном месте не должно затрагивать всю систему, а должно ограничиваться некоторыми локальными изменениями.

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


Дело в том, что исключения в java решают вовсе не ту задачу, они как бы и не исключения вовсе. Обратите внимание на название - исключение - означает исключительную ситуацию. Т.е. ситуацию, которая не была заранее предусмотрена, но есть возможность ее обработать. И ввели это понятие как ортогональное основному поведению программы.
Насколько исключения java соответствует такому назначению?

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

Код:
f : Int -> Int | Error
Автор: rew
Дата сообщения: 30.05.2003 18:36
как мне кажется некритичные ошибки лучше обрабатывать на месте. а механизм выброса ошибки из метода, имха, лучше оставить для тех случаев, когда ошибка критична для дальнейшего выполнения программы и обрабатывать ее нужно обязательно. хотя с другой стороны, достаточно было бы предупреждения от компилера, а не сообщение об ошибке, если не стоит отлов исключения для этих случаев.

Добавлено
кстати как один из вариантов решения этой проблемы, опять же имха, было бы введение дополнительного базового класса исключений, скажем с именем Warning, который было бы не обязательно обслуживать...
Автор: lvovin
Дата сообщения: 30.05.2003 19:04
Да, ошибки, которые имеет смысл обработать на месте и следует обрабатывать на месте. Но использовать для этого исключения (и вдобавок делать их такими неудобными) это явный language smell.

Вот хорошее решение:

Код:
x := anArray at: 100 ifAbsent: [^'нет такого элемента']
Автор: neperap
Дата сообщения: 30.05.2003 19:07
lvovin
Простите, и чем же Вам так не нравится второй случай обработки исключения?
Автор: javaner
Дата сообщения: 30.05.2003 19:11
opyat vseh zaneslo. spor mojno prodoljat do bezkonechnosti. davayte ludshe nad konkretnom primere proverim vse eto.
Автор: rew
Дата сообщения: 30.05.2003 19:15
давайте, давайте, вопрос что? кроме того пока кто нить не возьмет на себя роль главного и не начнет распределять что кому делать, с места ничего не сдвинется
Автор: lvovin
Дата сообщения: 30.05.2003 19:17
Разве не видно? Конструкция громоздкая, да еще в java часто приходится делать лишнюю работу, объявляя исключение в сигнатуре методов.
Автор: rew
Дата сообщения: 30.05.2003 19:22
lvovin

Цитата:
Конструкция громоздкая

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


Цитата:
да еще в java часто приходится делать лишнюю работу

да, да и еще раз да. и сделано это для того что б код был понятен с первого взгляда не только тому кто пишет.
Автор: lvovin
Дата сообщения: 30.05.2003 19:26
Могу посоветовать одно - think different, пробуй альтернативы.
Автор: neperap
Дата сообщения: 30.05.2003 19:33
lvovin
Тут и правда стОит думать немного шире

*лично* мне конструктор try-catch в разы удобнее.
Я в кэтче могу сделать всего и много -- все, что надо.

Вам же придется либо громоздить код, либо же писать отдельный метод.

P.S. А мы еще не говорили про легкость чтения...
Автор: lvovin
Дата сообщения: 30.05.2003 19:36
Какие альтернативные варианты приходилось активно применять на практике (за рамками C++/Java/C#)?
Автор: neperap
Дата сообщения: 30.05.2003 19:55
neperap
Да никаких
Я только въезжаю в программерство, и пытаюсь разобраться.

Только...
Прошу Вас, не надо говорить "мал еще, да глуп"
Я всего лишь высказал свое видение ситуации.

Вот
Автор: lvovin
Дата сообщения: 30.05.2003 20:18
Нет, такого я конечно не скажу.
В этом случае обычно говорится - это твое персональное IMHO.
Просто попробуй другие пути, прислушайся к совету авторитетов.
http://www.artima.com/weblogs/viewpost.jsp?thread=4639
http://martinfowler.com/bliki/LanguageForLearningObjects.html
И еще нужно знать хотя бы один функциональный язык, чтобы иметь завершенную картину в голове.
Автор: neperap
Дата сообщения: 31.05.2003 11:09
lvovin
Прошу заметить, что я не говорю что лучше и что хуже.
*на данный момент* *мне* конструкция try-catch удобнее.
А иногда и finally сильно помогает

P.S. Благодарю за ссылки.
Углубился в чтение...
Автор: onsh76
Дата сообщения: 27.07.2003 18:52
lvovin
>> И еще нужно знать хотя бы один функциональный язык, чтобы иметь завершенную картину в голове.
Ne mogli by Vy bolee podrodno ob'yzsnitx pochemu... Ya posmotrel linki na site Martina Fowlera i Roberta Martina. Ya soglasen i s nimi s Vami, kollega, chto Ruby i Python eto novaya iteratsiya v soft.development (a Smalltalk nastoyaschii OO language). Vopros: poidet li eto v zhiznx, ili zhe eto budet povtorenie istorii so Smalltalkom, kogda yazyk zadvinut na zadnii dvor i prikazhut medlenno umiratx...

P.S. kstati a kak so Smalltalk development v Rossii?
Автор: niki2k1
Дата сообщения: 29.07.2003 07:47
onsh76

Цитата:
kstati a kak so Smalltalk development v Rossii?

Не могу говорить за всю Россию, но по-моему никак...

Страницы: 1234

Предыдущая тема: Как уменьшить размер конечного файла в Delphi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.