作者: sunhikari 時間: 2015-6-9 12:21 標題: swift變左開放源碼.......
係昨日的的WWDC 2015公佈左,變左開源,而且基於Apache License, Version 2.0.協議
http://swift-lang.org/downloads/index.php
據資料顯示,SWIFT2可以係非APPLE的主機(即WINDOWS同LINUX)可以編程
但係咪可以擺脫一定要經MAC機黎做過機就真係未知之數
一但真係連MAC機都唔駛就可以過到機的話
那Android 用JAVA黎誇平台編寫程式的優勢就會失去
真係睇下今鋪大戰會變成點
作者: ip4368 時間: 2015-6-9 13:10
應該會有Go大戰Swift, Google好似準備加入Go成為app嘅官方support語言, 唔再剩係有java
作者: evec 時間: 2015-6-9 13:25
你係咪想多咗,目前SWIFT不單止無法替代OBJECTIVE-C,而且想單純只用SWIFT來開發OSX 軟件根本不可能,SWIFT只係包住SWIFT外皮的OBJECTIVE-C,而且非常不成熟,尤其佢的ERROR機制。
SWIFT這種程度的語言要移植到任何一個系統也沒問題,但想寫完IOS軟件就可以係ANDROID用,想多咗。
作者: l0001 時間: 2015-6-9 14:06
提示: 作者被禁止或刪除 內容自動屏蔽
作者: ben6000 時間: 2015-6-9 14:22
Swift 最終都會取替 Objective-C,依家連stanford都只教Swift ..Objective-C 依家只係等緊fade out ...
l0001 發表於 2015-6-9 14:06
我仲未學完OBJECTIVE- C 就變左無用
作者: ben6000 時間: 2015-6-9 14:23
swift變左跨平台,唔駛用mac 機寫,成本低左,即係寫IOS人多左
作者: Databases 時間: 2015-6-9 14:26
提示: 作者被禁止或刪除 內容自動屏蔽
作者: educationer 時間: 2015-6-9 14:42
買左部mac air先咁搞
作者: 3kiu 時間: 2015-6-9 14:52
跨平台可用 != 跨平台開發

由其是IOS APP 一定要MAC機DEVELOP/BUILD我覺得唔會變
作者: l0001 時間: 2015-6-9 15:44
提示: 作者被禁止或刪除 內容自動屏蔽
作者: evec 時間: 2015-6-9 15:59
本帖最後由 evec 於 2015-6-9 16:03 編輯
Swift 最終都會取替 Objective-C,依家連stanford都只教Swift ..Objective-C 依家只係等緊fade out ...
l0001 發表於 2015-6-9 14:06
SWIFT 其實根本是披著羊皮的OBJECTIVE-C,基本上你要寫如簡單的COMMAND LINE FILE IO,
根本不可能只用蘋果宣稱的SWIFT簡單代碼能夠實現,你需要引用OC 的API,STANDFORD 只係為教育方便才教SWIFT了,SWIFT 主要目的是想在OBJECTIVE-C 上加上自動化記憶體管理,但根本低層API完全沒有進化,不像JAVA由本身開始就己經設計好,而利用VM來實現,很多簡單應用如果不弄清楚OBJECTIVE C 的運行原理根本在SWIFT上也很難明白,
要OSX API 進化也是必須應用OBJECTIVE-C的,所以寫SWIFT時實際還是要處理好POINTER的問題,對一般新手根本豪無幫助,還把很多OBJECTIVE-C上很明確的概念給人為屏蔽,到最後新手想做一些有實際作用的軟件還是要理解OBJECTIVE C。
SWIFT 只是在初學階段容易,實際上在很多應用方面,是不會比OBJECTIVE-C易的,現階段很多處理是無解,必須於OBJECTIVE C 寫一段,然後再給SWIFT引用,要使編程更易,主要要改進OS API的能力,SWIFT照這樣的設計,我認為蘋果根本沒有打算使SWIFT 取代 OBJECTIVE C。
作者: l0001 時間: 2015-6-9 16:14
提示: 作者被禁止或刪除 內容自動屏蔽
作者: l0001 時間: 2015-6-9 16:19
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 556556bt 時間: 2015-6-9 16:42
可能有人當上堂考試咁學法... ..
其實考試都係用pseudo code 考你 algorithm 俾分的... ~~
作者: 556556bt 時間: 2015-6-9 16:45
睇完都覺奇怪... 佢個open source 仲要只係support iOS, OS X and Linux.....
睇完都唔明佢想點?!... 若然可以係linux develop 咁又可點compile 同emulator 點行呢?...
或許只不過syntax 黎.. 其實係咪open source 又有乜關係呢..
作者: 556556bt 時間: 2015-6-9 16:49
冇錯,現在swift只是objective-c wrapper, 但由IOS 9 開始,已經開始有 swift core 既framework,相 ...
l0001 發表於 2015-6-9 16:14
其實pointer lang. 係二千年後基本係phase out 緊. (除左寫C++), 亦都係大势所趨 唔明點解果時APPLE 係要攞番objective C 咁舊野推出黎做iOS唯一既development language.
作者: l0001 時間: 2015-6-9 17:06
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 556556bt 時間: 2015-6-9 17:27
所以其open source 同.net 既open source 應該不可同日而語. open 左個language 同open 左個platform 的確係2 個層次既事.
作者: evec 時間: 2015-6-9 17:51
本帖最後由 evec 於 2015-6-9 17:55 編輯
冇錯,現在swift只是objective-c wrapper, 但由IOS 9 開始,已經開始有 swift core 既framework,相 ...
l0001 發表於 2015-6-9 16:14
pointer 很少出現在新語言不是因為不需要pointer,而是新語言根本不想做pointer 要做的東西,
有很多東西根本不用pointer 就能做出來,但亦有很多較低層的應用沒有pointer 是做不出來。
根本沒有新語言能取代C++,因為要實作一個全新語言來取代C++的功能還比C++更好,就需要一位頂級天才人物,或者人力物力不會低於重新把電腦架構改寫。
pointer 的複雜性在於記憶體處理的複雜問題,而不是在於語法的問題。
又例如JAVA,寫一個低效或學生應用不用理會pointer,但只要較進級應用,同樣要面對pointer 的問題,如很多JAVA軟件運行速度慢佔記憶體太巨就是記憶體加載回收不當,JAVA上更要明白自動回收機的運作理論,例如JAVA 的pass by reference,沒弄清楚pointer 的人使用會是災難,JAVA發展了十多年面對很多記憶體問題還是像小學生一般無解,或者要用大量人力物力開發另一個資料庫來增加效率(如JAVA NIO),而很多新一代快餐語言,直接關你門口不能讓你這樣做,其實BASIC就是這一種語言,根本快餐語言不是新,只不過商業愛炒作而己。
作者: l0001 時間: 2015-6-9 18:12
提示: 作者被禁止或刪除 內容自動屏蔽
作者: twaiho2003 時間: 2015-6-9 19:52
唔明唔明唔明
swift 取代objective -c ? 係咪等於swift to native code compiler develop緊?
作者: dsscss 時間: 2015-6-11 20:16
回覆 20# l0001
完全同意#19既意見.
其實唔應該叫做MONITOR..
應該叫"你會好明確知道某一樣RESOURCE係RELEASE 0左"..
C++ 係DESIGN / 寫得唔好先會有RESOURCE LEAK發生,
其實呢種情況其實多數係C PROGRAMMING LANGUAGE 會發生,
因為C 係 無DESTRUCTOR / AUTO_PTR之類既幫助 0下...
會好易就睇漏 0野.
反而OS層面,其實咪又係分配一個MEMORY HANDLE既WRAPPER俾你,
入面其實都係POINTER..
亦都好似ITERATOR咁,
入面其實都係POINTER...
作者: hihihi123hk 時間: 2015-6-12 01:22
本帖最後由 hihihi123hk 於 2015-6-12 01:23 編輯
我就估計 linux 嘅desktop app 都會可以用swift 寫 ,甚至 遲幾年 swift 出埋Gaming framework,Swift +Metal 如果效能有顯注上升,相信啲人慢慢會轉過去
我覺得蘋果咁做係想 收Window皮 食佢Developer + Designer + Gamer 塊餅。
講真 過多四五年,我相信大部份枱機、手提電腦只會用黎工作。四五年後,平常用家市場電腦塊餅應該所淨無己,Window 食開嘅嗰塊餅準備沒落
作者: chi251155 時間: 2015-6-12 11:42
本帖最後由 chi251155 於 2015-6-12 15:16 編輯
回覆 11# evec
因錯誤而del
作者: chi251155 時間: 2015-6-12 11:47
回覆 20# l0001
os做既memory management好general,並唔會fit某一類型既application。如果你想要real-time system或者比較用盡啲資源,就一定要自己做memory management。
如果寫細program咪唔駛理可以交比os做。但其實比較大少少既,例如banking system、3d game、logging system等等都必需自己管理memory。八達通公司、大多數銀行系統都係自己manage memory。其實一個application developer如果唔熟low lever既野,都唔會寫得出啲咩好野。
作者: l0001 時間: 2015-6-12 14:24
提示: 作者被禁止或刪除 內容自動屏蔽
作者: evec 時間: 2015-6-12 15:04
本帖最後由 evec 於 2015-6-12 15:07 編輯
回覆 evec
objective-c已經有automatic reference counting所以swift唔係要處理memory management ...
chi251155 發表於 2015-6-12 11:42
而家講緊 APPLE SWIFT 唔係講緊 芝加哥大學 用JAVA寫出來的 Swift
Apple SWIFT
https://developer.apple.com/swift/ Apple Swift Complied Language
Apple最低的LINK係
Swift parallel scripting language
http://swift-lang.org/main/ 完全二樣野

ARC 美其名不是一個真正如GC的自動記憶體管理,只是一個 "記憶體計數器",
而SWIFT,所以你看翻我所謂,我說他是 "想" 達成類似GC這種程度的在執行階段能做自動控制及監控的記憶體管理模式,現在SWIFT根本不能實現,但他整個SYNTAX 的設計,雄心就是在建構更自動化的記憶體管理。
ARC當然比GC快,是因為ARC根本沒有GC的功能,就是運行中實時監測及管理記憶體問題,只是在compiler階段在程序上加入預計算好的CODE進入程式內,沒有的東西肯定是最快也。
APPLE肯定是有計劃推出類似GC的更進一步自動管理記憶模式,但這是雙面刀,無錯令寫程式門檻下降,ANDROID多垃圾野同用電量差就是這樣,能運行不代表運行好,但同時令程式更為劣質,寫更高水平的程式要掌掘更多自動管理機的運作特性, 所以蘋果唔想這種情況發生,又想創造更安全更易用又靈活的程式語言,又一個矛盾大對決。
作者: evec 時間: 2015-6-12 15:13
本帖最後由 evec 於 2015-6-12 15:18 編輯
以前寫落o個的就係,依家都好少有c++既system 開發了....Aglie Development is the most
low le ...
l0001 發表於 2015-6-12 14:24
是否平衡時空,基本上 WINDOWS OSX LINUX ANDROID 全部都是C/C++
OpenGL GPU 都是C/C++
CPU 無論 X86 ARM 都好,除了控制硬件的ASM外, 主要的編程NATIVE控制語言還是C/C++
JAVA源碼只要較低層,有效率問題的,硬件相關的,全面使用C++ NATIVE。
還有我想問下,如果我寫個程式要解X264的軟解程式,我不自己管理記憶體,我創造二百件垃圾才運行到一個流程,人家個CODE只要三十件垃圾,那OS的記憶體管理如何得知你二百件是垃圾,是OS進入你的程式來殺你一百七十件垃圾,說給你的程式聽不用這麼多垃圾嗎 ?
作者: chi251155 時間: 2015-6-12 15:15
回覆 27# evec
係, 搞錯左添.
作者: 神秘二代 時間: 2015-6-12 21:18
以前寫落o個的就係,依家都好少有c++既system 開發了....Aglie Development is the most
low le ...
l0001 發表於 2015-6-12 14:24
唔用pointer係trend? 你笑大人個口.....
對於Business, 成本越低越好, 要成本低, 用既硬件唔會好得去邊
當硬件差既時候, 就係用軟件去搭夠....memory 可能只有1GB, 甚至沒有
唔通你下下叫人去用i7? 成幾千蚊邊個去比?
作者: ntony 時間: 2015-6-12 22:54
就算唔講embedded, 無限錢去買hardware都唔會唔用pointer,呢類思維只局限於做開web project嘅人。time critical嘅application無幾多唔洗由developer去manage返system resource。Application memory應該要由OS去處理呢個真係笑咗,都廢事去向隻青蛙解釋。寫Java application寫深少少嘅都知,佢個GC mechanism真係optimise到Sun/Oracle班developer絞盡腦汁。而家重要交埋俾OS做,真係技術時空一下子遙咗去五十年之後。有呢個concept係好,不過到時個programming language同compiler就要同OS一齊design,要個program向OS request memory allocation。OS又要知道邊個memory block無晒reference,而家新嘅programming language起data type上面做得咁緊,要做到OS識GC唔係唔得,不過浪費多好多system resource。唔止memory(RAM)咁簡單,因為當乜嘢resource都係以64bit為最少單位咁去拎時,register、L1/L2 cache用多咗幾多?用多咗之後搬來搬去又花多幾多個operation?呢類嘢,小弟見做開high level programming嘅人唔係好識諗(老老實實,小弟都唔識),亦逃避去諗(做開high level唔熟無能力去諗,唔想接受自己攪唔掂)。做咗十幾年Java/.NET班人淨係「好高層次」咁講埋尐吹水嘢,好似好有經驗咁。其實唔識,講low level少少就露底喇,邊敢講?

作者: 7h1r733n 時間: 2015-6-12 23:43
今日仲講1GB Memory?
作者: 7h1r733n 時間: 2015-6-12 23:48
而家D人係.. 慢啊.. 加多幾部機咪快囉.. 換部勁少少o既機... 咁樣樣..
作者: ntony 時間: 2015-6-13 00:24
典型脫節IT manager心態,只懂用行政同財政手段。有時唔係加完就一定解決到問題。以前成日見有某team Java application team做得唔好,寫親嘅project都Out of memory。佢老細只懂不斷幫部server加RAM再起start個runtime時加大heap size。但其實加極都只係延遲個application嘅死亡時間,只係跑半日死同跑幾日死嘅分別。最後佢只懂加多幾隻server連Load balancer去解決。不過攪到要做load balancing,又係另一個戰場。香港好多dev leader或project manager其實好廢。
作者: ntony 時間: 2015-6-13 00:30
你加到main memory,唔代表你加到cache。
即使係RAM,而家RAM咁平製程咁細,Raspberry Pi都去到1GB RAM,但你會唔會買隻有8GB RAM嘅router?你會唔會買到隻工業級嘅printer會唔會「重本」落8GB RAM,8GB RAM嘅價錢都唔及一檯工業用打印機嘅一個零頭,點解佢哋唔落多幾GB?問題係加完係唔係就可以每秒印多十頁紙先?
作者: l0001 時間: 2015-6-13 00:50
提示: 作者被禁止或刪除 內容自動屏蔽
作者: l0001 時間: 2015-6-13 00:56
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 7h1r733n 時間: 2015-6-13 01:18
本帖最後由 7h1r733n 於 2015-6-13 01:27 編輯
呢個要視乎佢用黎做乜啦... 而家行返d windows 2000.. 1gb ram都好好用架啦...
不過時代係進步緊... 當電話都64bit o既年代.. 仲講1GB RAM會唔會有少少脫節呢? 我講一般Application...
當然.. 我唔反對有D野係要用/甚至係必須用C++黎寫... 但好多時候"一般"System已經唔駛好理個Memory Management(廢人寫廢code另計).... 就算我寫Unity Game 幾大幾複雜o既Game Compile左個core咪得幾MB(講緊source幾十萬行code果d)... 真正食RAM係d assets (有d game全套assets可以去到2GB)...打每場load入去都講緊load幾百mb resource... [仲要係大Game廠出添]
作者: 7h1r733n 時間: 2015-6-13 01:42
呢句我就好同意...
作者: evec 時間: 2015-6-13 08:36
本帖最後由 evec 於 2015-6-13 08:51 編輯
時代係進步,不過CPU原理就無改進,幾十年想像電影化的人工智能,智慧化,思想化,生物學習化,全部都實現唔到,技術根本突破不到,現在只不過是依賴計算速度的改進而己。
resource 係CPU硬件有特殊通道去處理,看用幾多資源唔係看CODE SIZE,一個幾十K的軟件可以增生到整個超級電腦都運作唔到的地步,
resource 包正正代表CPU唔夠力大要用記憶體資源搭夠正正反映CPU/GPU不夠力,圖像的野如果CPU勁的,何不在CPU內計算好,就讓CPU/GPU實時計算和現實一樣精度的場景出來便好,那就不用TEXTURE了。就例如以前的遊戲過場必定使用動畫MOVIE,一個動畫就好幾百MB了,現在GPU能力提升,很多非關鍵的情節畫面,可以用CPU/GPU繪出來了,但很複雜的還是無解。
圖像可以做DSP/平行運算,load 幾百MB的資料完全無問題,而且這些資料,GPU/CPU都不會同一時間使用存取,會把資料在記憶體開個BUFFER然後在適當時間直接用提取 (這兒又是一個POINTER無法代替的例子),但運算如光影效果運算係記憶體上只係十多句計算指令,己經可以令到FPS無咗一半。
很多地方記憶體再多也是無補於事,CPU CORE 再多還是要等待關鍵資料運算好才能做下一步,
INTEL CPU的CACHE L1/L2 CACHE 也沒多大,更不要說電話上的CPU了。
Pointer現在盡量不想用,但不是不需要了解和處理,只是很多在POINTER上難作的東西,不用POINTER比用POINTER還困難,但為了安全性又不能不改變不使用的POINTER,但除去這個表層,太多東西還是依賴POINTER這種東西,你不面對POINTER,你還是要面對POINTER的問題,只不過目標變做要對付其代理人也。
作者: evec 時間: 2015-6-13 08:39
關甚麼H264事,我舉的例子適用於所有程式運算。
作者: evec 時間: 2015-6-13 08:45
換曬的hardware一定平過請人優化個program ..
我心諗...你自己研究緊點樣manage 好個 memory 個陣...人地打回重做用埋framework寫完個system仲launch 埋啦
不過運行一舊屎,然後一個問題一年解決唔到,我用1分鐘就解決好了。
其實香港IT最失敗既地方係的人自視過高...以為自己識既野最有用..唔接受技術會有淘汰的一天..真悲哀
其實香港IT最失敗既地方係的人自視過高...以為自己識既野最有用..唔接受技術會有不如人的一天..真悲哀
作者: 7h1r733n 時間: 2015-6-13 09:27
本帖最後由 7h1r733n 於 2015-6-13 09:40 編輯
我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都唔會比我做到呢D野... 所以.. 只能求個tools/language自己做好"優化"...
另外有Ching話Out Of Memory問題....我唔識Java啦, 但是咪Gaberage Collect冇做好? 如果有做好應該唔會咁(否則Java就epic fail啦, 仲可以用到今日?), 我自己寫Game每完一個Scene都要Unload所有Assets再force GC.Collect.. 放返d memory出黎.. 呢d係常識吧? 如果冇做.. 咁呢個係屬於"廢人寫廢Code"問題....
作者: ntony 時間: 2015-6-13 13:45
由得佢啦,佢以為得佢先寫high level language。
我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都 ...
7h1r733n 發表於 2015-6-13 09:27
得幾歲大嘅Go夠新啦,佢做到data type同struct declaration改良咗,memory唔洗自己free,但個pointer一樣留返起度。加上Go個GC其實仍然令班開發組煞費心思。
作者: dragonken 時間: 2015-6-15 19:48
我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都唔會比我做到呢D野... 所以.. 只能求個tools/language自己做好"優化"...
另外有Ching話Out Of Memory問題....我唔識Java啦, 但是咪Gaberage Collect冇做好? 如果有做好應該唔會咁(否則Java就epic fail啦, 仲可以用到今日?), 我自己寫Game每完一個Scene都要Unload所有Assets再force GC.Collect.. 放返d memory出黎.. 呢d係常識吧? 如果冇做.. 咁呢個係屬於"廢人寫廢Code"問題....
你是用 unity 吧 ?
在 java 都有類似的 function. 呢種做法叫 collect garbage explicitly.
(.net 應該都類似)
識得寫 java o既從來都吾會 explicitly 咁 collect garbage (System.gc()),
OutOfMemory 通常都係 program 本身有 memory leak 或者落錯 jvm heap options 多.
你講得岩, java 吾係流o既, java 個 garbage collector 都真係 work o既, even 完全吾 call System.gc() 甚至 disable explicit GC, 一個寫得好無 memory leak o既 java program 係可以行一年以上吾 restart 又無 call System.gc() 都吾會有 OutOfMemory error.
作者: dragonken 時間: 2015-6-15 22:49
本帖最後由 dragonken 於 2015-6-15 22:54 編輯
我成條 thread 睇哂, 我講我所想的.
1. 用 java 發現有 GC 問題就加 hardware 去解決問題故然係反智, 但連 java 咁易學易用, 連這些 memory related 的問題都根治不了, 我敢講你轉用 C++ 寫都一定係死硬.
2. 正確面對 GC / OutOfMemory 問題應該係用 tools profile 個 application 搵出問題所在, gc tuning 由 jdk6 開始難度已經大減.
3. Java o既 OutOfMemoryError 多是 program 本身 memory leak, 跟 jvm / garbage collector 無關.
4. GC 帶來的問題主要是其 Non-deterministic 的特質, 跟 c++ manual memory management 比較起來的確是差一點.
5. 如果一個叻o既 C++ programmer 同一個叻o既 java programmer 一齊開始分別以 c++ 同 java 開發同一個 application, 用 C++ 寫的完勝吧. 至少我也是這樣認為. 問題是你可以請到幾多個叻o既 C++ programmer ? 醒o既 java programmer 一街都係.
作者: dragonken 時間: 2015-6-15 22:51
呢類思維只局限於做開web project嘅人。time critical嘅application無幾多唔洗由developer去manage返system resource。
點先至算係 time critical ? Non-web 就等如 time critical ?
作者: 7h1r733n 時間: 2015-6-16 02:29
你是用 unity 吧 ?
在 java 都有類似的 function. 呢種做法叫 collect garbage explicitly.
(.net 應該 ...
dragonken 發表於 2015-6-15 19:48
我是用Unity啊.. Java有睇過但冇深究...
Unity唔可以好似你咁講.. 唔做garbage collect特別係scene多.. 或者一個game入面有d mini game轉來轉去.. 例如入game出返lobby如果唔做gc就好易拖死部電話... 特別係Android...
通常我地做法都係落o系SenceManager果度.. 個Scene完就會自動call Resources.UnloadUnusedAssets() 同GC.Collect去放memory..
作者: dragonken 時間: 2015-6-16 12:35
我是用Unity啊.. Java有睇過但冇深究...
Unity唔可以好似你咁講.. 唔做garbage collect特別係scene多.. ...
7h1r733n 發表於 2015-6-16 02:29
那你搞清楚所謂 "拖死部電話" 是 OutOfMemory 還是只是它只在做 full GC 拖慢部電話吧, 係 android 部手機一段時間內沒有回應便會 prompt 你 close / wait, 跟 OutOfMemoryError 即彈 app 不同啊.
無論是 Java / .net / Android Dalvik, 到最後關頭都一定會行一個 stop-the-world full GC, 即係停哂這個 app 的所有 processes 然後做 Full GC, 如果 reclaim 哂所有 garbage 都無空間 allocate new objects 先會 OutOfMemory
前文你所講 OutOfMemory 原因是沒有做好 GC.collect, 又說這是 "常識" 及沒有做的就屬於 "廢人寫廢Code", 這說法我應為很有偏差. 如果你吾認識 java 或吾熟識 jvm garbage collector 就最好不要亂說.
就算是 Unity, 我認為就算你沒有 call GC.Collect, Android Dalvik 也會於爆 Ram 時做一次 full gc,
call GC.Collect 只係因為吾想係吾適當o既時候突然爆個 full GC, 跟 OutOfMemory 無關.
留意我沒有認為你於轉 scene 時 call GC 係錯, 只係想你搞清楚咩情況下會出現 OutOfMemory.
作者: 7h1r733n 時間: 2015-6-16 13:52
那你搞清楚所謂 "拖死部電話" 是 OutOfMemory 還是只是它只在做 full GC 拖慢部電話吧, 係 android 部手 ...
dragonken 發表於 2015-6-16 12:35
Unity Game o系Android度跑.. 有Memory Issue唔係乜野新鮮事... 自己Google吓
OK.. 我唔識Java... 所以我係用"問句"... 而我只係假設.. 如果一個program有正確design.. 根據個language本身o既特性去寫一個"正常"的application是唔應該有問題.. 咁講ok嘛?
作者: evec 時間: 2015-6-16 14:47
Unity Game o系Android度跑.. 有Memory Issue唔係乜野新鮮事... 自己Google吓
OK.. 我唔識Java... ...
7h1r733n 發表於 2015-6-16 13:52
想問何謂 "正常" ? 何謂 "正確" ? 甚麼是 "問題" 假設一個軟件 "正常" & "正確" ,請問D個假設係一個咪野的假設?
作者: 7h1r733n 時間: 2015-6-16 15:06
首先.... 點為之一個"正常" o既Application呢... 例如... 你要做一個Hello World Program.. 咁個Program要出到Hello World, 出唔到咁就唔正常.. 亦都交唔到貨...... 亦即係... 個program要過哂所有functional test... 冇問題.. 亦可以解譯為符合一般規範...
而正確呢... 即是無"錯誤"的....
作者: evec 時間: 2015-6-16 15:06
我成條 thread 睇哂, 我講我所想的.
1. 用 java 發現有 GC 問題就加 hardware 去解決問題故然係反智, 但連 ...
dragonken 發表於 2015-6-15 22:49
最後一條真係唔同意,醒的JAVA programmer 一街都係
自認為醒的JAVA programmer 就大一堆。
一個醒的programmer 可以遊走幾邊,選擇最適合的編程語言,
例如一個醒的progammer 用C++做得,同樣功能佢亦可以用JAVA實現。
如果一個所謂醒的JAVA programmer,面對JAVA做唔到的野,佢站咗係到,
佢只會推委JAVA係D方面做唔到,或者直接吹JAVA效能係D方面就係慢,
C++progammer 就無咁的專利,因為C++好似係萬能。
寫程式寫到了一定程度,根本己經不是對編程語言的程度,而是整個程式的算法,整個結構,對象間的關係等其他更高層次的考量了。
作者: evec 時間: 2015-6-16 15:09
首先.... 點為之一個"正常" o既Application呢... 例如... 你要做一個Hello World Program.. 咁個Program ...
7h1r733n 發表於 2015-6-16 15:06
如果我係一部機出到 HELLO WORLD,另一部機卻出咗 NO WORLD,第三部機無野出,個程式叫"正常"定唔"正常"
作者: 7h1r733n 時間: 2015-6-16 15:15
咁要視乎你係想o系另一部機度Run定係第三部機度Run... 同埋要視乎你個設計原意...
如果你設計只係想o系自己部機出Hello World.. 你當然冇需要理第二或第三部機.. 呢個情況算係正常...
如果你設計係想每一部機都出到Hello World.. 咁咪唔正常囉?
仲有冇問題呢?
作者: ntony 時間: 2015-6-16 15:19
閣下寫得program都係識邏輯嘅人,唔係需要小弟拎返Discrete Mathematics入面嘅set出嚟要大家分析吓嘛?
男人唔會做人呀媽(在此指生母),但係唔係所有女人做緊呀媽呢?
作者: evec 時間: 2015-6-16 16:47
本帖最後由 evec 於 2015-6-16 16:49 編輯
如果一個軟件係一部上重覆運行一百次,係第七十次就死機,係代表程式正確定唔正確 ?
我可是嚴格按照編程語言的特性而且編譯無錯誤。
我只係話比你聽你所謂的,
如果一個program有正確design.. 根據個language本身o既特性去寫一個"正常"的application是唔應該有問題
根本係一個 偽命題,因為我可以題出一百樣野證明你講的野錯,但我亦可以問你 但係你可以無限引申 "正確的DESIGN","正常","特性"。
我也可以製造一百個偽命題:如: 一個program有正確Design, 是不用 Debug 的。
作者: 7h1r733n 時間: 2015-6-16 17:12
本帖最後由 7h1r733n 於 2015-6-16 17:20 編輯
唔駛舉100個.. 舉幾個就夠..

既然你講到你可以舉成百個例.. 想必你一定能夠好輕易咁舉到一D實例黎睇吓?
係實例.. 唔係吹水例.. 因為你要"證明" 我講o既野係錯丫嘛..
Design是否正確自有公論.. 唔係你同我說了算..
作者: dragonken 時間: 2015-6-16 19:41
本帖最後由 dragonken 於 2015-6-16 20:03 編輯
其實你講兩個字就已經答左第二條問題但你講左幾行..仲要第一條問題無答....
我只好再問過:
點先至算係 time critical ? 有冇實際例子?
(回覆最好精簡達意, 無謂o既野最好少講)
作者: dsscss 時間: 2015-6-16 20:27
本帖最後由 dsscss 於 2015-6-16 20:35 編輯
其實我覺得要做一個新既LANGUAGE係好困難既事.
但最緊要唔好令到個種語言表達得模湖不清..
最起碼做到 (有好多LANGUAGE都做唔好呢一點, 包括好多人用的JAVA):
1) PASS/RETURN BY REFERENCE + 明確CONST.
2) 好明確知道CLONE OBJECT係CLONE 0左 D乜.
3) 要有好清楚的PROCEDURE點樣THROW / HANDLE EXCEPTION,尤其係NESTED FUNCTION..
.....
其實一D DECLARE到模糊不清既LANGUAGE,先會有咁多BUG發生..
就好似JDK本身就已經係咁多BUG..
除非佢真係TARGET FOR 羅黎做 SCRIPT, GLUE LANGUAGE...
作者: dragonken 時間: 2015-6-16 21:42
本帖最後由 dragonken 於 2015-6-16 23:10 編輯
其實沒有人跟你討論幾醒的 programmer,
我只是說醒o既 java programming 很多, 遠比好叻既 c++ programmer 易請.
另外一個說法是能夠掌握到 java programming 遠比掌握到 c++ programming o既人多.
這說法不難理解吧.
醒的progammer 用C++做得,同樣功能佢亦可以用JAVA實現。
really? 你之前才說用 c++ 寫 OS... 用 java 開發個 windows / linux 得吾得?
你這個 "醒的progammer" 真係吾講得笑 -_-!
C++progammer 就無咁的專利,因為C++好似係萬能。
好似? 少有地留有一個後門
萬能的 c++ 就是沒有 reflection, 沒有 reflection 就不能 "investigate yourself",
沒有 meta data 就連好簡單咁 dynamically convert object to json 都有困難, 莫說 ORM...
(c++ 沒有廣範地應用於 web application 也是這原因)
作者: evec 時間: 2015-6-16 23:54
本帖最後由 evec 於 2015-6-17 00:03 編輯
其實沒有人跟你討論幾醒的 programmer,
我只是說醒o既 java programming 很多, 遠比好叻既 c++ programmer ...
dragonken 發表於 2015-6-16 21:42
我亦無跟你討論幾醒的Programmer,我只係話自認好鬼醒的 JAVA Programmer 好多
遠多於自認叻的C++ 編程佬。
唔該你看翻我講咪,我前面話硬件為咗效能等首先配合的NATIVE語言一般係C同C++,
而家我話實現軟件的功能,唔好係到斷章取義。
最後先好笑
相反寫開C++的人,大多可以在JAVA上加上其沒有的功能。你的想法就係JAVA寫碼佬的典型想法,
想到C++ 無reflection 就站咗係到。
其實一個叻的寫碼佬應該係八搭,只要一個短時間就可以順利轉用其他編程軟件, 所以只能在 JAVA "醒" 的寫碼佬真係好打有限。
作者: dragonken 時間: 2015-6-17 00:58
我亦無跟你討論幾醒的Programmer,我只係話自認好鬼醒的 JAVA Programmer 好多
遠多於自認叻的C++ 編程佬。
既然你原來是想各有各自己講, 那你一開始說不同意我的是指什麼!?
最後一條真係唔同意,醒的JAVA programmer 一街都係
不過可能咁, 你可以回我這是講反話, 其實你真正的意思係同意我 -0- 無得輸 XD
唔該你看翻我講咪,我前面話硬件為咗效能等首先配合的NATIVE語言一般係C同C++,
而家我話實現軟件的功能,唔好係到斷章取義。
你吾係講緊反話咩? 解釋咁多做咩 -_-!
你有說是軟件功能? 是你沒說清楚還是我斷章取義 ? 再 quote 一次:
一個醒的programmer 可以遊走幾邊,選擇最適合的編程語言,
例如一個醒的progammer 用C++做得,同樣功能佢亦可以用JAVA實現。
不過咁, 現在我明白你這論點其實也是反話呀麻...
其實叻o既C++ programmer 與醒o既 java programmer 之說, 我只想道出一個現實市場的供求問題.
你想開條 team 請十個人返來寫 c++, 係香港市場來講真係好難好難. 好彩o既請到一兩個都係天價.
本是一個很客觀的現實問題, 你卻要胡扯到 C++ 佬點點點, java 佬點點點, 又要講埋 d 什麼好打有限, 這些人身攻擊少點說吧
作者: evec 時間: 2015-6-17 02:11
本帖最後由 evec 於 2015-6-17 02:23 編輯
你真係,夾硬到你呢,JAVA/C++唔係實現軟件功能,唔通用來實現硬件功能
識寫的人,用JAVA都可以做到C++的功能係無錯的,只係接口或硬件對應軟件問題,就係好多野原生支持C++/C,D個係接口問題,只要用JNI來接,亦得,但很少人會咁做而己,只是效率問題。做每件事都有佢最好的編程工具,但唔代表其他工具做唔到。
你看翻你自己講過咪野, 醒 同 叻 係你打出來,如何界定醒同叻呢,而家又唔見咗醒同叻字,我的意見係講,就係識用JAVA唔能夠變通轉變的程式人員,醒極有限,一個醒的JAVA人員係市場上亦唔容易找,一間公司找人做PROJECT招聘時過份強調應聘者用咪野工具,看得出這間公司非常短視水平不高亦不可能找到和留到好人才,
而家我講緊好多JAVA佬如此有眼界窄的觀點,本來就基礎能力薄弱, 講唔掂就拉到去 "人身攻擊"
作者: mlamlam 時間: 2015-6-17 18:36
OS allocate 左比你, 你個application又唔通知返佢話用完, 咩language都係一樣原理....
java/c# 就話有自動會收機制, 其他language 真係要dealloc返先識
作者: dragonken 時間: 2015-6-17 21:11
你真係,夾硬到你呢,JAVA/C++唔係實現軟件功能,唔通用來實現硬件功能
識寫的人,用JAVA都可以做到C++的功能係無錯的,只係接口或硬件對應軟件問題,就係好多野原生支持C++/C,D個係接口問題,只要用JNI來接,亦得,但很少人會咁做而己,只是效率問題。做每件事都有佢最好的編程工具,但唔代表其他工具做唔到。
用 java 寫但又要 call 返 JNI, 咁都講得通架話.
同樣的講法, 識寫的人用 shell script 都可以做到 java 的功能係無錯, 未就係 call batch file 行 java.exe
你看翻你自己講過咪野, 醒 同 叻 係你打出來,如何界定醒同叻呢,而家又唔見咗醒同叻字,我的意見係講,就係識用JAVA唔能夠變通轉變的程式人員,醒極有限,一個醒的JAVA人員係市場上亦唔容易找,
一開始你已經理解錯我意思, 到你知道你誤解意思時以一直人身攻擊.
我以 c++ 沒有 reflection 以反証你所說 c++ 是萬能, 你竟反指 java 佬不懂變通不會找代替品.
那個 java 佬跟你說他從來沒有想過代替品!? 「java 佬不懂變通」的理據在那裡?
你這行為叫「誣指」.
在這「誣指」o既論點上推論 「識用JAVA唔能夠變通轉變的程式人員,醒極有限」, 用老屈別人的論點上再施展人身攻擊, 以偏蓋全.
我的論點是 : 因為 java 比 c++ 易學, 捨難取易下學 java 的人自然多,
所以我們能夠聘請到駕輕就熟(醒)o既 Java 開發員, 遠比聘請到駕輕就熟(叻)o既 c++ 開發員容易.
你要否定我這說法, 你必需要指出
1) java 不是比 c++ 易學 or
2) 沒有那麼多人捨難取易學 java
以否定我的結論
反駁應反駁其論點, 但你沒有做到. 你所反駁沒什麼理據支持, 推論過程沒有邏輯可言, 只係一味攻擊別人的處事能力.
作者: dragonken 時間: 2015-6-17 22:22
本帖最後由 dragonken 於 2015-6-17 22:23 編輯
一間公司找人做PROJECT招聘時過份強調應聘者用咪野工具,看得出這間公司非常短視水平不高亦不可能找到和留到好人才,
你有這想法不難理解, 我的想法跟你不同:
請人/工作配對容易
招聘時清楚列明所用的技術及工具, 這能夠讓擅長這些工具的求職者找到他想要的工作.
買 software / tool license
容易買到 enterprise licenses 即省錢, 如果公司用萬國棋 tools 多 ide 多 lib / framwork licenses 多亦難以管理. 太多 programming language 佢地可能要係吾同 o既 platform 先行到又係難 manage.
Consistency of delivery
用開果樣野好o既就繼續用, 用過o既 tool / framework 有咩 pitfalls 衰左以後記得. 太多 tool 太多 programming languages 太多野要試難以取級. 用最善長o既工具去 delivery 最好o既野.
Software life cycle 一條龍
由 prototype design, code style, IDE, build tools, diff files, deployment, unit testing, software testing, issues tracking, continue integration, defects managment, release management. 用 standardized o既 tools 及統一的 programming language 容易實現有效管理. 如果用太多 programming languages, 做 code style / unit test / build scripts / deployment 就要一個 programming langauge 一 set envrionment 去實現即是難以管理.
Job rotation / Agility
用 standardized 大家都善長o既 tools 就容易讓開發員 rotate d 工作來做, 以容易達到大家都可以學到吾同 domain knowledge o既效果.
easy share project and modules, reusability
用 standardized o既 programming language 就容易分 module 及給不同 product 作整合, 如果 modules 是由很多 programming languages 開發, 要把這些 module 整合於不同 product 時很有難度.
以上是我的論點, 歡迎你跟我討論, 但我希望你不要像之前那樣了.. 例如我只說了買 software license 你就幻想我們這一類愛用統一 tools / programming language 的人, 原來不會去找 freeware 代替品, 又不懂變通云云... 夠了吧.

作者: l0001 時間: 2015-6-17 23:30
提示: 作者被禁止或刪除 內容自動屏蔽
作者: mlamlam 時間: 2015-6-18 00:05
話事話個人唔係java高手,但佢啲language syntax 好僟追唔上時間..
同埋佢啲stacktrace簡直係頭痛,有時未必錯果行
回返正題,而家個swift好似樓主或其他CHING咁講,似係VB6果隻,要玩到深入啲就要DLLimport咁call返C d windows library...
所以M$而家推出左.Net Framework, 大部份以前要DLLImport先做到既野而家.net framework 有library直接做到,希望swift到時有好似.net framework 咁強大既野推出...
作者: educationer 時間: 2015-6-25 08:12
咁既話冇籍口買macbook

