Re: [討論] 有沒有讀工程的覺得學python很難/煩的呢

看板Tech_Job (科技人)作者 (神崎・H・アリア)時間3周前 (2024/10/26 13:13), 3周前編輯推噓40(42279)
留言123則, 54人參與, 3周前最新討論串3/3 (看更多)
※ 引述《champdessert (朱安)》之銘言: : 如題 : 小弟唸工程的,之前學C++拿來處理實驗數據、玩arduino或用matlab都覺得還不錯用,因為就那幾個指令,只要靠邏輯就可以慢慢土法煉鋼拼湊出來要的東西。 : 但最近碰到大家說很好學的python,卻覺得它東西都過度包裝所以不好用,正因為都是人「定義」包裝好的東西,一定要照著他的方法寫,反而用起來覺得煩。如果遇到bug因為都是包裝好的指令所以無法用直觀的邏輯去debug或推論,還要上網查一堆資料,還不一定有解。而且這樣就會變成case by case,在不同的應用就要學一系列不同的函式定義,情境稍有不同可能就無法套用,沒辦法用最基礎的一套解決。 : 為什麼大家都說c++比較難python簡單,而我的感覺卻相反呢?是我之前都用得太淺了嗎? : -------------------------------- : 更:感謝大家的回覆,看來真的是我學得太基礎的關係才會這麼覺得。要來努力學習了~ 你肯定是不會C++ C++是一個高度需要理解編譯器運作的語言 隨便舉個例子 template <typename T, typename... Args> constexpr auto add(T&& first, Args&&... rest) { return std::forward<T>(first) + add(std::forward<Args>(rest)...); } template <typename T> constexpr T add(T&& value) { return std::forward<T>(value); } 這是C++11/14 template使用可變參數(...)來處理多個不同型態參數 所以需要遞歸終點<>,確保模板遞歸能正常結束 constexpr就是編譯時期決定 std::forward跟std::move是C++11的 move symantec 是compiler優化的概念 到了C++17 多了摺疊表達式(Variadic Template)可以簡化每次需要定義遞迴終點 template <typename... Args> constexpr auto add(Args&&... args) { return (std::forward<Args>(args) + ...); } 現實情況兩種都要會 不能只會Variadic Template的版本 因為最廣泛是C++11 然後因為早期(C++20以前) 會造成噴大量的compiler error又很難找問題 所以這段C++20會再升級先定義concept來讓compile error問題更明確在哪 template<typename T, typename U> concept Addable = requires(T a, U b) { { a + b } -> std::same_as<decltype(a + b)>; }; template <typename... Args> requires (Addable<Args, Args> && ...) constexpr auto add(Args&&... args) { return (std::forward<Args>(args) + ...); } 以上只是C++少量編譯器針對的feature 其他還有很多是針對編譯時期優化的工具 std::less<> 編譯時期比大小腦包工具 有專門給編譯器看的[[fallthrough]] 強制要求編譯器跳過的神經病Attribute <=>(三向比較運算符或太空船運算符)這也是針對編譯器後端的的智障語法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.99.2 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1729919600.A.BB3.html

10/26 13:16, 3周前 , 1F
推這篇
10/26 13:16, 1F

10/26 14:02, 3周前 , 2F
光lvalue rvalue reference和move semantics 就很煩
10/26 14:02, 2F

10/26 14:02, 3周前 , 3F
了,再加上template metaprogramming 讓我想起不好
10/26 14:02, 3F

10/26 14:02, 3周前 , 4F
的回憶了
10/26 14:02, 4F

10/26 14:18, 3周前 , 5F
他把c當成c++
10/26 14:18, 5F

10/26 14:21, 3周前 , 6F
跟我想的差不多,樓下碼農幫我judge一下
10/26 14:21, 6F

10/26 14:25, 3周前 , 7F
只能說雖然很難 但是比python酷
10/26 14:25, 7F

10/26 14:26, 3周前 , 8F
不然這年頭隨便一個人都說自己會python
10/26 14:26, 8F

10/26 14:27, 3周前 , 9F
所以後來才有if constexpr讓事情沒有那麼糟糕 XD
10/26 14:27, 9F
C++白爛之處 還要知道哪些寫法是存活在哪些C++版本...... 甚至還有 (since C++17)(deprecated in C++20) 這種只存活一版的鬼東西=.= https://i.imgur.com/U2lxAXe.png
有圖有真相 std::variant_alternative

10/26 14:28, 3周前 , 10F
寫C++很想大聲說我看懂了 但實際上不懂
10/26 14:28, 10F

10/26 14:33, 3周前 , 11F
嗯對 跟我想的一樣
10/26 14:33, 11F

10/26 15:01, 3周前 , 12F
好難 我第一次看到c++就知道要放棄了
10/26 15:01, 12F

10/26 15:02, 3周前 , 13F
metaprogramming真的走偏了我個人覺得
10/26 15:02, 13F

10/26 15:19, 3周前 , 14F
C++語法太繁雜啦,加上很多把c++當c用的,浪費c++
10/26 15:19, 14F

10/26 15:19, 3周前 , 15F
的OOP特性
10/26 15:19, 15F

10/26 15:21, 3周前 , 16F
單純資料處理用python即可,甚至c#都可以
10/26 15:21, 16F

10/26 15:38, 3周前 , 17F
完全看不懂 我果然不會寫C++...
10/26 15:38, 17F

10/26 15:59, 3周前 , 18F
好奇deprecated會怎樣? 下版移除?
10/26 15:59, 18F
可以看編譯器警告未來不支援 然後看哪時move 到了move的版本就是compile error

10/26 16:08, 3周前 , 19F
身為C++ 10年+開發者,只能說C++走到有點偏了
10/26 16:08, 19F

10/26 16:09, 3周前 , 20F
開發反應速度完全比不上python
10/26 16:09, 20F

10/26 16:09, 3周前 , 21F
你還在debug template,人家產品都快上線了
10/26 16:09, 21F
真的 開發要快都是要用有package mamanger的現代語言 js還支援熱插拔就地改code看結果 Hot Module Replacement (HMR) C++還要先等compile......

10/26 16:11, 3周前 , 22F
我只覺得近幾年的c++一直往python的方向靠
10/26 16:11, 22F

10/26 16:14, 3周前 , 23F
更別說一些奇妙的語法,你係。一個90%的人看不懂的
10/26 16:14, 23F

10/26 16:14, 3周前 , 24F
東西是要搞誰
10/26 16:14, 24F

10/26 16:14, 3周前 , 25F
*你寫
10/26 16:14, 25F
真的 所以主要還是C++11最為廣泛

10/26 16:24, 3周前 , 26F
還是C直覺,所見code即所執行code
10/26 16:24, 26F

10/26 17:03, 3周前 , 27F
全世界應該統一一種語言 那就是python
10/26 17:03, 27F

10/26 17:09, 3周前 , 28F
原 po 就比錯東西啦,把程式語言本身的複雜性,和
10/26 17:09, 28F

10/26 17:09, 3周前 , 29F
外掛 package / 程式庫的複雜性混為一談,他就不是
10/26 17:09, 29F
C++ package更是地獄 現在比較好的用CMake 去build 更古老的還要用automake之類的 很難搞 現代語言都有套件管理 加上Dockrefile馬上就可以搬家了

10/26 17:09, 3周前 , 30F
嫌語法難,是覺得看人家程式、文件麻煩
10/26 17:09, 30F

10/26 17:16, 3周前 , 31F
喔對了,原來 concept 是這樣用啊...說真的覺得他
10/26 17:16, 31F

10/26 17:16, 3周前 , 32F
有點多餘,template error 就 CRTP 寫比較複雜的時
10/26 17:16, 32F

10/26 17:16, 3周前 , 33F
候比較難看懂,所以一直沒想去學 concept
10/26 17:16, 33F

10/26 17:16, 3周前 , 34F
還有 49 則推文
還有 9 段內文
10/26 22:38, 3周前 , 84F
放棄cpp改寫rust快樂很多,性能差不多
10/26 22:38, 84F

10/26 23:29, 3周前 , 85F
想問一句,是賺多少啦
10/26 23:29, 85F

10/26 23:29, 3周前 , 86F
(開玩笑的。。。
10/26 23:29, 86F

10/27 00:35, 3周前 , 87F
其實Intel內部是用Python在Debug IC了
10/27 00:35, 87F

10/27 01:01, 3周前 , 88F
新手入門CPP要從那版開始R 學過C 熟悉Python
10/27 01:01, 88F

10/27 01:16, 3周前 , 89F
Python 這麼好寫還能靠北也是奇葩
10/27 01:16, 89F

10/27 01:37, 3周前 , 90F
my professional life is so much better since I h
10/27 01:37, 90F

10/27 01:37, 3周前 , 91F
ave abandoned C++
10/27 01:37, 91F

10/27 01:58, 3周前 , 92F
這語言就是歷史共業啦 這種處處是leaky abstracti
10/27 01:58, 92F

10/27 01:58, 3周前 , 93F
on的東西 除了拖垮開發速度之外實在沒什麼好的
10/27 01:58, 93F

10/27 03:29, 3周前 , 94F
c++樓主說的這類東西真的很麻煩
10/27 03:29, 94F

10/27 06:33, 3周前 , 95F
把C++當C用 code才看的懂....
10/27 06:33, 95F

10/27 06:39, 3周前 , 96F
西家家又沒逼每個寫西家家的人都要深入了解 metapr
10/27 06:39, 96F

10/27 06:39, 3周前 , 97F
ogramming ,你不會用到的話簡單知道下概念就好了
10/27 06:39, 97F

10/27 08:04, 3周前 , 98F
果然要害一個人就是叫他去學c++
10/27 08:04, 98F

10/27 08:11, 3周前 , 99F
所以上篇我才會說嫌C++不夠難的通通去寫一次C++的co
10/27 08:11, 99F

10/27 08:11, 3周前 , 100F
mpiler frontend
10/27 08:11, 100F

10/27 08:11, 3周前 , 101F
不會compiler根本寫不了C++,太多東西是為了compile
10/27 08:11, 101F

10/27 08:11, 3周前 , 102F
r存在的了
10/27 08:11, 102F

10/27 08:11, 3周前 , 103F
不過話說回來我覺得Rust學的後面要玩procedural mac
10/27 08:11, 103F

10/27 08:11, 3周前 , 104F
ro其實也沒有比C++的template好到哪裡去
10/27 08:11, 104F

10/27 08:12, 3周前 , 105F
但如果要從這個角度來看的話,寫Python的寫到這個程
10/27 08:12, 105F

10/27 08:12, 3周前 , 106F
度也都不是在寫Python了而是Cython
10/27 08:12, 106F

10/27 09:18, 3周前 , 107F
剛摸c++的人基本上不會自己寫template, move這些。
10/27 09:18, 107F

10/27 09:18, 3周前 , 108F
第一次用python的感覺是資料不好查,會return什麼
10/27 09:18, 108F

10/27 09:18, 3周前 , 109F
都不寫…
10/27 09:18, 109F

10/27 09:57, 3周前 , 110F
c的宣告和定義就會讓你感覺python的自主性有多好
10/27 09:57, 110F

10/27 10:26, 3周前 , 111F
gdb也是都用Python輔助script
10/27 10:26, 111F

10/27 12:44, 3周前 , 112F
現在直接上Rust/Go即可,頂多補個assembly
10/27 12:44, 112F

10/27 18:56, 3周前 , 113F
python不是可以提示type嗎?
10/27 18:56, 113F

10/27 18:59, 3周前 , 114F
不太確定前面幾樓是不是在講傳遞變數的type固定的問
10/27 18:59, 114F

10/27 18:59, 3周前 , 115F
題 但真的很擔心的話就提示+傳進來馬上assert isins
10/27 18:59, 115F

10/27 18:59, 3周前 , 116F
tance不就行了?就算這麼龜毛閱讀理解上也不會比C++
10/27 18:59, 116F

10/27 18:59, 3周前 , 117F
複雜吧
10/27 18:59, 117F

10/28 09:20, 3周前 , 118F
還好我早就放棄C++了
10/28 09:20, 118F

10/28 09:58, 3周前 , 119F
我也覺得C++困難,別人寫的code常常看不懂
10/28 09:58, 119F

10/28 10:27, 3周前 , 120F
可以拿 Python 跟 CPP 比較就很神了,還不夠直譯嗎
10/28 10:27, 120F

10/29 08:50, 3周前 , 121F
10/29 08:50, 121F

10/29 10:18, 3周前 , 122F
早日放棄c++, 薪資才會解放
10/29 10:18, 122F

10/30 09:11, 3周前 , 123F
金派捏大家
10/30 09:11, 123F
文章代碼(AID): #1d77fmkp (Tech_Job)
文章代碼(AID): #1d77fmkp (Tech_Job)