![]() |
|
Почему язык Python такой популярный? | ☑ | ||
---|---|---|---|---|
0
megabax
31.10.16
✎
21:22
|
Добрый день. Я тут начала изучать Python, и, если честно, был сильно удивлён некоторыми фактами. Во-первых, этот язык интерпретируемый и работает медленно. Во-вторых, в нем нестрогая динамическая типизация, то есть, мало того что не обязательно предварительно объявить переменную, так он еще и может менять свой тип по ходу работы программы, и, более того, если мы обратимся к несуществующему полю объекта, то мы получим вовсе не исключительную ситуацию, а просто создадим это поле. То есть, с ООП там, если грубо говорить, немножко бардак.
Но тем не менее, почему то Python очень популярный, им пользуется Яндекс, Гугл, на нем написано много разные программ, а многие серьёзные компании в своих вакансиях предъявляют требование обязательного знания Python. Дык почему Python так популярен? Что в нем такого крутого, что, несмотря на очевидные недостатки, делает его таким популярным? |
|||
165
Кирпич
01.11.16
✎
18:00
|
(162) проще говоря, нет оптимизации типа dynamic
|
|||
166
Serginio1
01.11.16
✎
18:01
|
(165) Читай 163
|
|||
167
Кирпич
01.11.16
✎
19:09
|
(166) почитал. Нафиг я это читал? Pypy делает быстро, .net медленно.
|
|||
168
spock
01.11.16
✎
19:10
|
(140) примеры не одинаковые. Range выделяет весь массив в памяти, а потом итерирует по нему. Замени на xrange чтоли.
|
|||
169
Кирпич
01.11.16
✎
19:40
|
(168) чота я не заметил, как выделяется полгига памяти под массив
|
|||
170
Serginio1
01.11.16
✎
19:50
|
(167) Угу у тебя пример того, что никогда не возникает в жизни ни разу.
В реальной жизни приходится работать с утиной типизацией то есть с объектами неизвестного типа, но имеющие определенную сигнатуру методов и их название. Например COM, ExpandoObject (аналог структура) DynamicObject (нет аналога) и объекты неизвестного типа Для COM и обычных объектов можно использовать Reflection. Так во dynamic быстрее Reflection раз в 13-30 http://stackoverflow.com/questions/13193799/performance-cost-of-using-dynamic-typing-in-net И при этом вызов по сигнатуре. Для интереса проведи тест для установки свойства, вызова метода с не dynamic параметрами. |
|||
171
Serginio1
01.11.16
✎
19:52
|
Кстати можно и IronPython попробовать. Там как раз все на DLR
|
|||
172
Serginio1
01.11.16
✎
19:53
|
Кстати хорошая презентация про то как работает DLR http://www.slideshare.net/yu5k3/dlr-54012646
|
|||
173
Кирпич
01.11.16
✎
20:20
|
(170) "Угу у тебя пример того, что никогда не возникает в жизни ни разу."
Ну в .NET я конечно не стану какие нибудь гигантские матрицы на dynamic считать, а на PyPy получается можно. Я просто подумал, что компилятор NET такой же умный как PyPy. Оказалось нет. Ну и пофиг. |
|||
174
Loky9
01.11.16
✎
20:26
|
(171) Он тормозней цэпитона раз в десять.
Нашел такую штуку: http://numba.pydata.org/ Это даже круче pypy! |
|||
175
Loky9
01.11.16
✎
20:30
|
(149) Нужно было разобрать xml в архивах, но разбор был не самой большой проблемой в задаче.
На баше это сделать можно, но неудобно, громоздко и плохосопровождаемо. |
|||
176
Jija Grenkov
01.11.16
✎
22:30
|
Пайтон часто используется как вспомогательный язык. На пример как замена bash скриптов. На Пайтон часто пишут вспомогательные утилиты не требовательным к производительности. Так же Пайтон широко используется при анализе данных, но если данных много то на Пайтоне делают только прототипы, а основную реализацию на jvm языках. Производительность Пайтон скриптов никогда не была высокой
|
|||
177
Jija Grenkov
01.11.16
✎
22:32
|
В разработке классических приложений Пайтон не слишком популярен
|
|||
178
Loky9
01.11.16
✎
23:05
|
(176) "Производительность Пайтон скриптов никогда не была высокой"
-Ты что, дальтоник, Скрипач, - зелёный цвет от оранжевого отличить не можешь? @jit def mandel(x, y, max_iters): """ Given the real and imaginary parts of a complex number, determine if it is a candidate for membership in the Mandelbrot set given a fixed number of iterations. """ i = 0 c = complex(x,y) z = 0.0j for i in range(max_iters): z = z*z + c if (z.real*z.real + z.imag*z.imag) >= 4: return i return 255 print(mandel.inspect_asm((numba.float64, numba.float64, numba.int64))) >>>>> .text .file "mandel" .section .rodata.cst8,"aM",@progbits,8 .align 8 .LCPI0_0: .quad 4616189618054758400 .text .globl __main__.mandel$27.float64.float64.int64 .align 16, 0x90 .type __main__.mandel$27.float64.float64.int64,@function __main__.mandel$27.float64.float64.int64: movsd 40(%rsp), %xmm0 movq 48(%rsp), %r9 xorl %eax, %eax testq %r9, %r9 cmovsq %rax, %r9 xorpd %xmm2, %xmm2 movabsq $.LCPI0_0, %r8 xorpd %xmm1, %xmm1 .align 16, 0x90 .LBB0_1: leaq (%r9,%rax), %rdx testq %rdx, %rdx jle .LBB0_4 movapd %xmm2, %xmm4 mulsd %xmm4, %xmm4 mulsd %xmm1, %xmm2 mulsd %xmm1, %xmm1 subsd %xmm1, %xmm4 addsd %xmm2, %xmm2 addsd %xmm3, %xmm4 movapd %xmm2, %xmm1 addsd %xmm0, %xmm1 movapd %xmm4, %xmm2 mulsd %xmm4, %xmm4 movapd %xmm1, %xmm5 mulsd %xmm5, %xmm5 addsd %xmm4, %xmm5 decq %rax ucomisd (%r8), %xmm5 jb .LBB0_1 notq %rax movq %rax, (%rcx) xorl %eax, %eax retq .LBB0_4: movq $255, (%rcx) xorl %eax, %eax retq .Lfunc_end0: .size __main__.mandel$27.float64.float64.int64, .Lfunc_end0-__main__.mandel$27.float64.float64.int64 .section .rodata.cst8,"aM",@progbits,8 .align 8 .LCPI1_0: .quad 4616189618054758400 .text .globl cpython.__main__.mandel$27.float64.float64.int64 .align 16, 0x90 .type cpython.__main__.mandel$27.float64.float64.int64,@function cpython.__main__.mandel$27.float64.float64.int64: .cfi_startproc pushq %r15 .Ltmp0: .cfi_def_cfa_offset 16 pushq %r14 .Ltmp1: .cfi_def_cfa_offset 24 pushq %rsi .Ltmp2: .cfi_def_cfa_offset 32 pushq %rdi .Ltmp3: .cfi_def_cfa_offset 40 pushq %rbx .Ltmp4: .cfi_def_cfa_offset 48 subq $112, %rsp movapd %xmm7, 96(%rsp) movapd %xmm6, 80(%rsp) .Ltmp5: .cfi_def_cfa_offset 160 .Ltmp6: .cfi_offset %rbx, -48 .Ltmp7: .cfi_offset %rdi, -40 .Ltmp8: .cfi_offset %rsi, -32 .Ltmp9: .cfi_offset %r14, -24 .Ltmp10: .cfi_offset %r15, -16 .Ltmp11: .cfi_offset %xmm6, -80 .Ltmp12: .cfi_offset %xmm7, -64 movq %rcx, %rsi leaq 56(%rsp), %rax movq %rax, 48(%rsp) leaq 64(%rsp), %rax movq %rax, 40(%rsp) leaq 72(%rsp), %rax movq %rax, 32(%rsp) movabsq $.const.mandel, %rax movabsq $PyArg_UnpackTuple, %rbx movl $3, %r8d movl $3, %r9d movq %rdx, %rcx movq %rax, %rdx callq *%rbx movl %eax, %ecx xorl %eax, %eax testl %ecx, %ecx je .LBB1_16 testq %rsi, %rsi je .LBB1_17 cmpq $0, 24(%rsi) je .LBB1_3 movq 72(%rsp), %rcx movabsq $PyNumber_Float, %rdi callq *%rdi movq %rax, %rsi movabsq $PyFloat_AsDouble, %rbx movq %rsi, %rcx callq *%rbx movapd %xmm0, %xmm6 movabsq $Py_DecRef, %r15 movq %rsi, %rcx callq *%r15 movabsq $PyErr_Occurred, %r14 callq *%r14 movq %rax, %rcx xorl %eax, %eax testq %rcx, %rcx jne .LBB1_16 movq 64(%rsp), %rcx callq *%rdi movq %rax, %rsi movq %rsi, %rcx callq *%rbx movapd %xmm0, %xmm7 movq %rsi, %rcx callq *%r15 callq *%r14 movq %rax, %rcx xorl %eax, %eax testq %rcx, %rcx jne .LBB1_16 movq 56(%rsp), %rcx movabsq $PyNumber_Long, %rax callq *%rax movq %rax, %rdi testq %rdi, %rdi je .LBB1_8 movabsq $PyLong_AsLongLong, %rax movq %rdi, %rcx callq *%rax movq %rax, %rsi movq %rdi, %rcx callq *%r15 .LBB1_8: callq *%r14 movq %rax, %rcx xorl %eax, %eax testq %rcx, %rcx jne .LBB1_16 xorl %ecx, %ecx testq %rsi, %rsi cmovsq %rcx, %rsi xorpd %xmm1, %xmm1 movl $255, %eax movabsq $.LCPI1_0, %rdx xorpd %xmm0, %xmm0 .align 16, 0x90 .LBB1_10: leaq (%rsi,%rcx), %rbx testq %rbx, %rbx jle .LBB1_14 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 mulsd %xmm0, %xmm1 mulsd %xmm0, %xmm0 subsd %xmm0, %xmm2 addsd %xmm1, %xmm1 addsd %xmm6, %xmm2 movapd %xmm1, %xmm0 addsd %xmm7, %xmm0 movapd %xmm2, %xmm1 mulsd %xmm2, %xmm2 movapd %xmm0, %xmm3 mulsd %xmm3, %xmm3 addsd %xmm2, %xmm3 decq %rcx ucomisd (%rdx), %xmm3 jb .LBB1_10 movl $2147483647, %eax subq %rcx, %rax notq %rcx shrq $32, %rax jne .LBB1_15 movq %rcx, %rax .LBB1_14: movabsq $PyInt_FromLong, %rdx movl %eax, %ecx callq *%rdx jmp .LBB1_16 .LBB1_15: movabsq $PyLong_FromLongLong, %rax callq *%rax .LBB1_16: movaps 80(%rsp), %xmm6 movaps 96(%rsp), %xmm7 addq $112, %rsp popq %rbx popq %rdi popq %rsi popq %r14 popq %r15 retq .LBB1_3: movabsq $PyExc_RuntimeError, %rcx movabsq $".const.missing Environment", %rdx movabsq $PyErr_SetString, %rax callq *%rax xorl %eax, %eax jmp .LBB1_16 .LBB1_17: movabsq $".const.Fatal error: missing _dynfunc.Closure", %rcx movabsq $puts, %rax callq *%rax ud2 .Lfunc_end1: .size cpython.__main__.mandel$27.float64.float64.int64, .Lfunc_end1-cpython.__main__.mandel$27.float64.float64.int64 .cfi_endproc .type .const.mandel,@object .section .rodata,"a",@progbits .const.mandel: .asciz "mandel" .size .const.mandel, 7 .type ".const.Fatal error: missing _dynfunc.Closure",@object .align 16 ".const.Fatal error: missing _dynfunc.Closure": .asciz "Fatal error: missing _dynfunc.Closure" .size ".const.Fatal error: missing _dynfunc.Closure", 38 .type ".const.missing Environment",@object .align 16 ".const.missing Environment": .asciz "missing Environment" .size ".const.missing Environment", 20 .section ".note.GNU-stack","",@progbits |
|||
179
Loky9
01.11.16
✎
23:07
|
"а основную реализацию на jvm языках"
Больше неначем... |
|||
180
Jija Grenkov
02.11.16
✎
00:31
|
(178) да такой пример и на 1с не сложно llvm байт код интерпретировать. Вот только я не слышал о больших приложениях на этой виртуальной машине.
(179) таковы реалии. |
|||
181
Tarzan_Pasha
02.11.16
✎
05:57
|
да не такой уж он популярный. Ну на питоне всякие парсеры пишут, насколько мне известно и некий хакерский софт.
|
|||
182
DDwe
02.11.16
✎
06:20
|
(181) Паша как всегда всякую хрень пишет.
|
|||
183
spock
02.11.16
✎
06:21
|
(169) python3 чтоли?
|
|||
184
Loky9
02.11.16
✎
08:04
|
(180) "Вот только я не слышал о больших приложениях на этой виртуальной машине."
Эпл использует llvm в графической подсистеме макоси. BSD собирается clang. https://wiki.freebsd.org/BuildingFreeBSDWithClang (183) pypy не выделяет память в такой ситуации. |
|||
185
kihor
02.11.16
✎
18:44
|
(0) Не знаю, не знаю насчет этого Питона. Вот перед мной встала задача написать скрипт, который бы парсил неструктурированный Ексель-файл и готовил CSV-файл для загрузки в базу. Решил, что Питон это модно и начал писать на нем. Несколько дней я промучался с кодировками. Все время были какие-то проблемы с преобразованием символов при записи в файл. Плюнул я на это дело и написал скрипт за пару часов на Перле. Признаю, что наверное я просто плохо знаю Питон, но в моем случае это было так. Не понимаю почему Питон так потеснил в популярности Перл. Наверное просто мода такая.
|
|||
186
kihor
02.11.16
✎
18:46
|
(185)+ Или еще пример. Надо было мне написать скрипт, который бы обращался по https ссылке и при помощи PKCS12 сертификата скачивал бы информацию. Долго читал доки и как я понял Питон не позволяет это делать. На Перл это делается "на ура".
|
|||
187
Loky9
02.11.16
✎
19:12
|
(185) Регулярно пиходится разбирать питоном xls и xlsx. Не имею никаких проблем. С dbf тоже.
(186) Может быть проблема решается openssl pkcs12 -in filename.p12 -nokeys -out certificate.pem openssl pkcs12 -in filename.p12 -nocerts -out privkey.pem ? |
|||
188
spleen
02.11.16
✎
19:16
|
1. Порог вхождения низкий.
2. Кроссплатформенный 3. На нем написан популярный web фреймворк Django. Хотя на этом фреймворке вся популярность в web заканчивается. 4. В научной среде много его используют. Есть библиотека NumPy. Часто это не совсем программисты, а ученные которым надо написать не сложные программы по анализу и тд. Тут как раз динамическая типизация большой плюс. 5. Хороший язык для обучения программированию. 6. Опять же, Raspberry pi 7. Много уже готовых написанных библиотек. 8. Хорошее сообщество. 9. Скриптовый язык. В системном администрировании тоже очень популярен. Потому как почти во всех дистрибутивах Linux предустановлен. |
|||
189
kihor
02.11.16
✎
19:18
|
(187) Да, решение с openssl я также нашел, но не хотелось заставлять клиентов кроме возни с PKCS12 сертификатом заставлять еще возиться с их преобразованием. Поэтому я решил распространять скрипт на Перле для своего сервиса.
|
|||
190
Loky9
02.11.16
✎
19:26
|
(189) from OpenSSL import crypto
p12 = crypto.load_pkcs12(file("push.p12", 'rb').read(), [password]) # PEM formatted private key print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey()) # PEM formatted certificate print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate()) |
|||
191
kihor
03.11.16
✎
01:13
|
(190) Спасибо. Я не находил раньше такого.
В целом, единственный случай когда у меня Питон "победил" Перл - это чтение списков Sharepoint. У варианта на Перл были какие-то глюки с авторизацией, а вариант на Питон заработал без проблем. |
|||
192
Balabass
03.11.16
✎
02:03
|
Разработка ПО.
Оставлю это здесь: https://www.youtube.com/watch?v=4UhESx6vK4c |
|||
193
EvilBeaver
09.11.16
✎
11:25
|
(163) Встроить DLR в 1script я думал, но как-то закопался в документации и исходниках IronPython. Не уверен, что овчинка стоит выделки.
|
|||
194
Gary417
09.11.16
✎
11:26
|
(188) <Опять же, Raspberry pi >
А что распберри? я на яве для неё пишу |
|||
195
EvilBeaver
09.11.16
✎
11:28
|
(140) вот выполнение вашего примера на 1script 1.0.15.
38 секунд. Откуда 3 минуты взялось? https://s21.postimg.org/lfrm47e1j/2016_11_09_11_26_26.png |
|||
196
Rovan
гуру
09.11.16
✎
12:46
|
(0) в Lotus Notes не лучше
метод AddItemValue создает поле в документе а чтобы получить знание поля надо его найти GetFirstItem() Все поля являются сразу массивами. Нет понятия "тип документа". Есть просто поле Form, по значению которого система понимает в какой форме его открывать. |
|||
197
Кирпич
29.11.16
✎
22:51
|
(195) и правда. может ком чота считал во время теста. ну вот на ноуте старом померил сейчас.
https://postimg.org/image/4i46fnx21/ моё 5 сек python 24 сек onescript минута |
|||
198
Garykom
гуру
29.11.16
✎
23:01
|
(197) А ты повторно то запусти... причем сразу же после 1-го теста ))
|
|||
199
Кирпич
29.11.16
✎
23:03
|
(198) да запускал раз пять
|
|||
200
Кирпич
29.11.16
✎
23:06
|
+(199) может другая версия была. сейчас то последнюю качнул
|
|||
201
Jump
30.11.16
✎
00:42
|
(197) Ну вроде умный человек, неужто не понимаешь что измерять время выполнения скрипта для сравнения языка не слишком умная затея?
|
|||
202
Кирпич
30.11.16
✎
07:37
|
(201)да я языки и не сравниваю. Просто попробовал и удивился, что питон так тупанул на ровном месте.
|
|||
203
NikVars
30.11.16
✎
09:56
|
(202) А чего ты время исполнения разного кода сравниваешь?!
|
|||
204
Кирпич
30.11.16
✎
10:03
|
(203) и чем он разный?
|
|||
205
NikVars
30.11.16
✎
10:04
|
(204) Может ты тут запутать всех решил. Глянь свою картинку и увидишь.
|
|||
206
Кирпич
30.11.16
✎
10:07
|
(205) не вижу
|
|||
207
Jokero
30.11.16
✎
10:13
|
(0) Он простой, поэтому и популярный. Я вообще Фитон в глаза никогда не видел, зашел в "проект Малмо", почитал их демки на фитоне, все понятно, даже без комментов.
|
|||
208
NikVars
30.11.16
✎
10:18
|
(206) В цикле что ты суммируешь? Смотри после "+100.".
Попробуй проверить на Д = Д + синус(Д)/(1+ Логарифм10(Д)) |
|||
209
Кирпич
30.11.16
✎
10:29
|
(208) сам пробуй. нафиг мне твои логорифмы
|
|||
210
craxx
30.11.16
✎
10:37
|
(0) интересно, а почему это в разделе "Убийцы 1С"? разве Питон - убийца 1С? по моему даже близко нет.
|
|||
211
NikVars
30.11.16
✎
10:39
|
(209) Обиделся?! Я ж копался в твоих мудростях... Ты уж напрягись!
|
|||
212
Кирпич
30.11.16
✎
10:44
|
(211) зачем мне напрягаться? Прибавдять 100.50 или 100.25 как то может повлиять на скорость что-ли?
|
|||
213
NikVars
30.11.16
✎
10:49
|
(212) Честно?! Не знаю! Но как варианты для проверки: работа от сети, а не от аккума, и что там с антивирусом - тоже отключить.
А раз свелось у нас - делай сам - ибо ты уже сравнил и тебе все ясно - то предлагаю закрыть тему. |
|||
214
Мандалай
30.11.16
✎
10:53
|
Заголовок из разряда "Вы перестали пить коньяк по утрам?"
|
|||
215
Кирпич
30.11.16
✎
10:57
|
(213) Ничо не понял чего там у вас свелось и где. Я просто в (140) по ошибке написал, что onescript выполнял такой код за 2 минуты. Потом признал, что ошибся. Код одинаковый. 100.50 или 100.25 значения не имеет.
|
|||
216
NikVars
30.11.16
✎
10:58
|
(215) Код разный, это твоя вторая ошибка.
|
|||
217
Кирпич
30.11.16
✎
11:00
|
(216) ну так напиши, где он разный
|
|||
218
Кирпич
30.11.16
✎
11:01
|
(216) и про первую ошибку тоже напиши
|
|||
219
NikVars
30.11.16
✎
11:04
|
(217) Уже написал в (208). Ты говоришь, что одинаковый.
Мне стебануться над тобой?! |
|||
220
Кирпич
30.11.16
✎
11:09
|
(219) лучше не стебайся. не умеешь.
|
|||
221
NikVars
30.11.16
✎
11:10
|
(220) Ок. Не буду.
|
|||
222
eklmn
гуру
30.11.16
✎
12:11
|
(202) тут не питон тупанул, а проверяльщик ))
range создал тебе объект из 9999999 элементов, а то что в цикле уже не важно Гвидо сказал бы тебе "use multiprocessing" |
|||
223
Кирпич
30.11.16
✎
12:15
|
(222) xrange не намного ускоряет. на секунду может
|
|||
224
Поросян
30.11.16
✎
12:44
|
Есть тут люди, хорошо разбирающиеся в Питоне?
Скажите как на нем заработать не выходя из дома. |
|||
225
Loky9
30.11.16
✎
15:18
|
(224) Кроме как "клепать сайты" вариантов выбора не очень много.
|
|||
226
Jija Grenkov
30.11.16
✎
16:41
|
(224) На питоне больше зарабатывает data scientist, но питон там вторичен. А сатики клепат ьна питоне последнее дело
|
|||
227
Tarzan_Pasha
30.11.16
✎
16:46
|
(224)мне кажется парсеры всякие. а не сайты.
|
|||
228
Loky9
30.11.16
✎
16:53
|
||||
229
Кирпич
30.11.16
✎
16:53
|
(224) разве что книжки про питон писать и продавать :)
Я питоном текстовые файлы генерю. Или какой нибудь микросервис на коленке. Рассылку почты там и сё такое. Или посчитать чего нибудь. Просто инструмент вспомогательный, короче. |
|||
230
Господин ПЖ
30.11.16
✎
16:53
|
под парсеры сейчас вроде go модно
|
|||
231
Кирпич
30.11.16
✎
17:00
|
(230) если людям отдавать, то Go конечно лучше. а если для себя, то и питон пойдет.
|
|||
232
Loky9
30.11.16
✎
17:02
|
На питоне лучше всего строчится всё срочное и/или одноразовое.
|
|||
233
Loky9
30.11.16
✎
17:03
|
... ажильное, можно сказать.
|
|||
234
Вафель
30.11.16
✎
17:05
|
а питон вс js? кто быстрее?
|
|||
235
Loky9
30.11.16
✎
17:05
|
(234) на питоне написать быстрее
|
|||
236
Gary417
30.11.16
✎
17:07
|
(235) букв меньше? :)
|
|||
237
Loky9
30.11.16
✎
17:07
|
Написал OpenCV счетчик машинок. Работает шустро. Из-за питона? Не думаю.
|
|||
238
Loky9
30.11.16
✎
17:07
|
(236) Конструкции более ёмкие.
|
|||
239
craxx
30.11.16
✎
17:11
|
(224) если ты осваиваешь язык программирования чтобы зарабатывать - ничего зарабатывать не получится.
|
|||
240
Кирпич
30.11.16
✎
17:21
|
(239) И только язык 1с все изучали исключительно для зарабатывания денег.
|
|||
241
Tarzan_Pasha
30.11.16
✎
17:21
|
(234)конечно Питон.
|
|||
242
Tarzan_Pasha
30.11.16
✎
17:22
|
(239)не согласен с вами дяденька. Я начал веб изучать ради заработка денег и начал на нем зарабатывать. уж очень 1с надоел.
|
|||
243
Кирпич
30.11.16
✎
17:27
|
(242) я вообще в программисты пошел потому что в офисе работать тепло, а на улице холодно. вовсе даже не из-за денег.
|
|||
244
craxx
30.11.16
✎
17:35
|
(240) я ради интереса аж в 2001 году
|
|||
245
Турист
01.12.16
✎
09:35
|
Хмм, паша уже сам с собой общается ))
|
|||
246
Shurjk
01.12.16
✎
09:48
|
Очень широкая сфера прикладного применения, много библиотек. Весьма прост, не дает того самого простора мысли что присущ системщикам, на питоне либо что то делается либо объявляется что это невозможно - вообщем то что надо для бизнесса.
|
|||
247
Loky9
01.12.16
✎
12:31
|
(246) Как будто описание js.
Чего там невозможного, что так сильно ограничивает простор мысли? |
|||
248
Кирпич
01.12.16
✎
12:38
|
(247) ну например указатели и с ними миллион способов вызвать загадочный глюк
|
|||
249
Loky9
01.12.16
✎
12:46
|
(248) С mutables можно наловить всего того же)
|
|||
250
losky_9
01.12.16
✎
13:14
|
В общем, до понимания работы zip(*[iter(seq)] * n) о простоте/сложности питона говорить рано.
|
|||
253
ELEA26
01.12.16
✎
14:05
|
(0) рассадник багов. Даже опечатку можно искать долго. Ошибок не видать на 1й, 2й и третий взгляд.
|
|||
254
bolder
01.12.16
✎
14:07
|
(41) Спасибо,посмеялся!
Какой API у Расходной накладной может быть у 1С, если процедуры даже извлечения и расчета налогов переименовываются и перемещаются по модулям произвольно. Если бы этого не было и способы 1 и 2 были бы не геморройными.Поэтому наследование в 1С - это из области фантастики. |
|||
255
eklmn
гуру
01.12.16
✎
14:09
|
(253) как все печально и с глазами и с руками...
|
|||
256
Jump
03.12.16
✎
02:51
|
(239) Это почему?
Вот взять тот же JS. Я его учил чтобы зарабатывать. Для того чтобы зарабатывать нужно было реализовать некоторый функционал, и это самый удобный для этого язык. Можно было нанять программиста - но это офигенно дорого в отсутствие четкого ТЗ и четкого понимания нужной функциональности. А так - выучил, написал прям в процессе обучения, и получаешь деньги. |
|||
257
rphosts
03.12.16
✎
06:04
|
(64) docker - это круто, а копипаст одних исходников уже банально
|
|||
258
Serginio1
03.12.16
✎
12:13
|
(252) Сейчас изучаю Angular 2. Так TypeScript намного приятнее JS. А учитывая мощь ангулара, то TS будет развиваться еще быстрее. Смысл в том, что TS поддерживает старые версии JS. А там смотришь и поддержка браузерами будет TS, учитывая, что WebAssembly буксует. Но и перекомпиляция TS в WA более удобная за счет типизации
|
|||
259
Мэс33
03.12.16
✎
13:14
|
||||
260
Jija Grenkov
04.12.16
✎
04:26
|
(259) Для девелопера высокого уровня 200к смешные деньги. Как по мне у них ценикс на начинающего синьера
|
|||
261
Garykom
гуру
04.12.16
✎
05:40
|
(259) BDSM: business, development, sales and marketing
Но реально читаешь что пишет "рекрутчик" и да вроде все понятно, но на каком же языке она мысленно думает? Уж явно не на русском ибо "Методологии различаются между продуктовыми командами" )) |
|||
262
Garykom
гуру
04.12.16
✎
05:51
|
(260) Для "девелопера высокого уровня" деньги довольно часто уже не на 1-м месте.
Важнее комфортная работа над интересными (бросающими вызов самолюбию) задачами/проектами. Комфортная это значит тебя не залюбливают совещаниями и тимбилдингами, минимум ненужной/пустой работы (только когда сам хочешь отвлечься) и четкое разделение обязанностей. Если я разработчик то плиз все баги/жалобы/фидбеки от пользователей хочу иметь уже в письменном структирированном/сводном виде. А если приходится общаться вместо поддержки то это конечно без проблем, но за отдельную плату и понимая что процесс разработки будет страдать. |
|||
263
Garykom
гуру
04.12.16
✎
05:58
|
(262) *структурированном
|
|||
264
Мэс33
04.12.16
✎
09:38
|
(260) нормальные деньги.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |