1.javawebä¸phpçå·®å«(javawebåphpåºå«)
2.xnviewåxnview mpåªä¸ªå¥½
3.çå¾çç¨ä»ä¹è½¯ä»¶å¥½?识货识货
4.营销型网站大概多少钱能做一个?
5.一个好的程序员至少应该具备哪些条件?
javawebä¸phpçå·®å«(javawebåphpåºå«)
JavaåPHPå¨Webå¼åæ¹é¢çæ¯è¾
æ¯è¾PHPåJSPè¿ä¸¤ä¸ªWebå¼åææ¯å¨ç®åçæ åµæ¯å ¶å®æ¯æ¯è¾PHPåJavaçWebå¼å以ä¸æ¯æå°±å 个主è¦æ¹é¢è¿è¡çæ¯è¾
ä¸è¯è¨æ¯è¾
PHPæ¯è§£éæ§è¡çæå¡å¨èæ¬è¯è¨é¦å phpæç®å容æä¸æçç¹ç¹è¯æ³åcè¯è¨æ¯è¾è±¡æ以å¦è¿cè¯è¨çç¨åºåå¯ä»¥å¾å¿«ççæphpçå¼åèjavaéè¦å å¦å¥½javaçè¯æ³åçæä¸äºæ ¸å¿çç±»åºæå¾é¢å对象çç¨åºè®¾è®¡æ¹æ³æ以javaä¸å¦php好å¦
Javaé¦å è¦ç¼è¯æåèç classæ件ç¶åå¨javaèææºä¸è§£éæ§è¡JavaçWebå¼åé¦å æ容ææ³å°çå°±æ¯JSPï¼ç°å¨å·²ç»å°JSPï¼åæ¥çjavaçWebå¼åé½æ¯ç¨servletæ¥å®ç°çç¨servletæ¥å¼åéè¦ç¨åºåå¨javaçæºæ件ä¸åµå ¥å¤§éç代ç æ以åæ¥å°±åºç°äºJSPJSPå¯ä»¥æ¹ä¾¿çåµå ¥å°æ件å½ä¸å ¶å®jspæ件å¨æå¡å¨ä¸æ§è¡çæ¶åé¦å ä¼è¢«åºç¨æå¡å¨è½¬æ¢æservletç¶ååç¼è¯æ§è¡Jspå¯ä»¥éè¿servletåJavaBeançé¹ææ¯æ产ç强大çåè½JavaBeanæ¯ä¸ç§å¯å¤ç¨ç跨平å°ç软件ç»ä»¶ä½¿ç¨javabeanå¯ä»¥æ¹ä¾¿çå®ç°java代ç åçå离è½å¤å¢å¼ºç³»ç»çåè½å软件çå¤ç¨æ§
JavaçWebå¼åå±äºSUNå ¬å¸å®ä¹çJEEå ¶ä¸çè§èèä¸å¨JEEä¸å æ¬äºjavaçWebå¼åçæææ¹é¢å¦JSPServletJDBCJNDIJAVABEANEJBççJEEå°±ç¹å«éåäºå大åçä¼ä¸çº§çåºç¨
äºæ°æ®åºè®¿é®æ¯è¾
Javaéè¿JDBCæ¥è®¿é®æ°æ®åºéè¿ä¸åçæ°æ®åºååæä¾çæ°æ®åºé©±å¨æ¹ä¾¿å°è®¿é®æ°æ®åºè®¿é®æ°æ®åºçæ¥å£æ¯è¾ç»ä¸
PHP对äºä¸åçæ°æ®åºéç¨ä¸åçæ°æ®åºè®¿é®æ¥å£æ以æ°æ®åºè®¿é®ä»£ç çéç¨æ§ä¸å¼ºä¾å¦ç¨Javaå¼åçWebåºç¨ä»MySQLæ°æ®åºè½¬å°Oracleæ°æ®åºåªéè¦åå¾å°çä¿®æ¹èPHPåéè¦å大éçä¿®æ¹å·¥ä½
ä¸ç³»ç»è®¾è®¡æ¶ææ¯è¾
éç¨JavaçWebå¼åææ¯éè¦ä½¿ç¨çæ¯é¢å对象çç³»ç»è®¾è®¡æ¹æ³èPHPè¿æ¯å¹¶å¹¶éç¨é¢åè¿ç¨çå¼åæ¹æ³æ以ç¨Javaè¿è¡å¼ååæéè¦å大éçç³»ç»åæå设计çå·¥ä½
å跨平å°æ§
JavaåPHPé½æå¾å¥½ç跨平å°çç¹æ§å ä¹é½å¯ä»¥å¨ä¸ä½ä»»ä½ä¿®æ¹çæ åµä¸è¿è¡å¨Linuxæè Windowsçä¸åçæä½ç³»ç»ä¸
äºå¼åææ¬æ¯è¾
PHPæç»å ¸çç»åå°±æ¯PHP+MySQL+Apacheé常éåå¼åä¸å°åçWebåºç¨å¼åçé度æ¯è¾å¿«èä¸ææç软件é½æ¯å¼æºå è´¹çå¯ä»¥åå°æå ¥
JavaçWebåºç¨æå¡å¨æå è´¹TomcatJBossçå¦æéè¦æ´å¥½çåä¸åçæå¡æWebSphereåWeblogic
å åå¸å¼å¤å±æ¶ææ¯è¾
PHPåªè½å®ç°ç®åçåå¸å¼ä¸¤å±æä¸å±çæ¶æèJAVAå¨è¿æ¹é¢å°±æ¯è¾å¼ºå¤§å¯ä»¥å®ç°å¤å±çç½ç»æ¶ææ°æ®åºå±ï¼æä¹ åå±ï¼åºç¨ï¼ä¸å¡ï¼é»è¾å±è¡¨ç¤ºé»è¾å±å½¼æ¤åå¼èä¸ç°å¨ä¸åçå±é½å·²ç»æä¸äºæççå¼åæ¡æ¶çæ¯æä¾å¦Strutså°±æ¯å©ç¨javaçWebå¼åææ¯å®ç°äºMVCç设计模å¼èå¨ä¸å¡é»è¾å±ä¹æSpringæ¡æ¶æ°æ®åºæä¹ åå±æHibernateçæ¡æ¶è¿äºæ¡æ¶å¯ä»¥æ¹ä¾¿å¼åè é«æåçç§å¦å¾æ¶æå¤å±çåä¸åºç¨
ä¸é¢ç®è¦ç说ä¸ä¸Strutså®å®è´¨ä¸æ¯å¨JSPModelçåºç¡ä¸å®ç°çä¸ä¸ªMVCï¼ModelViewControlerï¼æ¡æ¶JSPModelä½ç³»ç»ææ¯ä¸ç§èå使ç¨JSPä¸Servletæ¥æä¾å¨æå 容çæ¹æ³å¨Strutsæ¡æ¶ä¸æ¨¡åç±å®ç°ä¸å¡é»è¾çJavaBeanæEJBç»ä»¶æææ§å¶å¨ç±Servletå®ç°çè§å¾ç±ä¸ç»JSPæ件ç»æéç¨Strutså¯ä»¥æç¡®è§è²çå®ä¹åå¼åè ä¸ç½é¡µè®¾è®¡è çåå·¥èä¸é¡¹ç®è¶å¤æå ¶ä¼å¿è¶ææ¾
ä¸æºä»£ç å®å ¨
PHPå¼åçç¨åºçæºä»£ç»è迹ç é½æ¯å ¬å¼çä»äººæ¿å°phpå¼åçç¨åºåé½å¯ä»¥è¿è¡ä¿®æ¹
Javaå¼åçç¨åºæåç¨æ·æ¿å°çæ¯åªæ¯ä¸äºç¼è¯å¥½çclassç±»æ æ³çå°å®æ´çæºä»£ç å®å ¨æ§é«
å «æ§è½æ¯è¾
æ人åè¿è¯éªå¯¹è¿ä¸¤ç§ç§è¯è¨åå«åååæ§è½æµè¯åååOracleæ°æ®åºæµè¯
å¨å¾ªç¯æ§è½æµè¯ä¸JSPåªç¨äºä»¤äººåæçåç§éå°±ç»æäºï¼çååèPHPæµè¯çæ¯ï¼å¾ªç¯ï¼å°ä¸ä¸ªæ°é级ï¼å´åå«ç¨äºç§
æ°æ®åºæµè¯ä¸äºè åå«å¯¹Oracleè¿è¡æ¬¡InsertUpdateSelectåDeleteJSPéè¦ç§PHPéè¦ç§
项ç®
PHP
JAVA
å¯å¤ç¨æ§
ä½
é«
å¼åé度
å¿«
æ ¢
æç»´æ¤æ§
å·®
ä¼
å¯ç§»æ¤æ§
ä¼ï¼Linux
WindowsUnix
å®å ¨æ§
ä½
é«
å¼åè´¹ç¨
ä½
é«
å¤å±æ¶æ
å·®
ä¼
æ°æ®åºè®¿é®
æ¥å£ä¸ç»ä¸
æ¥å£ç»ä¸
å¯æ©å±æ§
å·®
ä¼
é¢å对象
å·®
ä¼
lishixinzhi/Article/program/PHP//
ç°å¨å¼åç½ç«ï¼å¥½åé½æ¯æµè¡ç¨phpï¼é£javawebä¸è¬ç¨å¨åªéå¢ï¼å®ä»¬ä¹é´çåºå«åä¼å£å¿å¨åªéå¢ï¼javawebä¹æ¯ç¨å¨webå¼åï¼è·phpä¸æ ·ãä¸åçå°æ¹å¤å±å°±æ¯javawebå¶å®äºèªå·±çæ åï¼servletï¼jspãå¾éè¦ç¹å®ç容å¨ã
javawebç¸å档让对äºphpæ¯æ²¡æè ¢ç ä»ä¹ä¼å¿çãä½æ¯javaæ¯éç¨è¯è¨ï¼å¹²ä»ä¹é½å¯ä»¥ãphpä¸æ³¨äºwebå¼åãè¿ç®æ¯javaçä¼å¿ï¼ä½æ¯javawebç¡®å®ä¸å¦phpæµè¡ã
javaä¸phpåwebå¼åæ大çåºå«å¨é£ä¸ºä»ä¹å¥½å¤ç¨javaç
PHPåJavaé½æ¯ç°å¨æ¯è¾æµè¡çäºç§ç¼ç¨è¯è¨ã
对äºè®¸å¤æ°ææ¥è¯´ï¼é½ä¼æèå¦æå¦çæ¶åï¼è¯¥å¦åªç§è¯è¨å¢ï¼ä¸é¢è¿ç¯æç« ç»å¤§å®¶æ´ç两è çåºå«ä»¥åä¸äºéæ©å»ºè®®ï¼ä¸èµ·æ¥ççå§ã
äºãç®ä»
PHPä¸Javaä½ä¸ºä¸¤ç§æªç¶ä¸åçç¨åºå¼åè¯è¨ï¼æ 论æ¯ææ¯å±é¢è¿æ¯åå±ç©ºé´ï¼äº¦ææ¯å¸åºä»½é¢å æ¯ï¼é½æçä¸åç表ç°æ¹å¼ï¼ç念ä¸çä¸å导è´äºJavaåPHPå¨Webåºç¨å¼åä¸æ¾ç¤ºäºä¸åçç»æãè¥è¦ä¸å®è¿½æ ¹å°åºï¼æ·±ç©¶PHPä¸Java究ç«åªä¸ªæ´å¥½ï¼
ç®èè¨ä¹ï¼PHPæ¯ä¸ç§è§£éæ§è¡çèæ¬è¯è¨ï¼è¯æ³åCè¯è¨ç±»ä¼¼ï¼æå¦æç¨ï¼ä¸æçµèçéä¸ä¸äººåç¨ç»å¦ä¹ ä¹è½ä½¿ç¨PHPï¼èJavaè¦å ç¼è¯æClassæ件ï¼ç¶åå¨Javaèææºä¸æ§è¡ï¼Javaå¼åéè¦çæJavaè¯æ³ä»¥åä¸äºæ ¸å¿çæ¶æï¼ä»èå®ç°ä¸ç§å¯å¤ç¨çã跨平å°ç软件ï¼Javaæ¯PHPè¦é¾å¦çå¤ã
é£ä¹PHPä¸Javaå¨é罩Webå¼åä¸åæä½åºå«å¢ï¼åªä¸ªæéåçWebå¼åè¯è¨ï¼
ä¸ãè¯ç¥å²ä¹è¨æ¯è¾
PHPæ¯è§£éæ§è¡çæå¡å¨èæ¬è¯è¨ï¼é¦å phpæç®å容æä¸æçç¹ç¹ãè¯æ³åcè¯è¨æ¯è¾è±¡ï¼æ以å¦è¿cè¯è¨çç¨åºåå¯ä»¥å¾å¿«ççæphpçå¼åãèjavaéè¦å å¦å¥½javaçè¯æ³åçæä¸äºæ ¸å¿çç±»åºï¼æå¾é¢å对象çç¨åºè®¾è®¡æ¹æ³ãæ以ç¸å¯¹èè¨ï¼phpæ´å¥½å¦ä¸äºã
Javaé¦å è¦ç¼è¯æåèç .classæ件ï¼ç¶åå¨javaèææºä¸è§£éæ§è¡ãJavaçWebå¼åé¦å æ容ææ³å°çå°±æ¯JSP(ç°å¨å·²ç»å°JSP2.0)ï¼åæ¥çjavaçWebå¼åé½æ¯ç¨servletæ¥å®ç°çï¼ç¨servletæ¥å¼åéè¦ç¨åºåå¨javaçæºæ件ä¸åµå ¥å¤§éçhtml代ç ãæ以åæ¥å°±åºç°äºJSP,JSPå¯ä»¥æ¹ä¾¿çåµå ¥å°htmlæ件å½ä¸ï¼å ¶å®jspæ件å¨æå¡å¨ä¸æ§è¡çæ¶åé¦å ä¼è¢«åºç¨æå¡å¨è½¬æ¢æservletï¼ç¶ååç¼è¯æ§è¡ãJspå¯ä»¥éè¿servletåJavaBeançæ¯æ产ç强大çåè½ãJavaBeanæ¯ä¸ç§å¯å¤ç¨çã跨平å°ç软件ç»ä»¶ã使ç¨javabeanå¯ä»¥æ¹ä¾¿çå®ç°java代ç åhtmlçå离ï¼è½å¤å¢å¼ºç³»ç»çåè½å软件çå¤ç¨æ§ã
JavaçWebå¼åå±äºSUNå ¬å¸å®ä¹çJ2EEå ¶ä¸çè§èãèä¸å¨J2EEä¸å æ¬äºjavaçWebå¼åçæææ¹é¢ï¼å¦ï¼JSPãServletãJDBCãJNDIãJAVABEANãEJBççãJ2EEå°±ç¹å«éåäºå大åçä¼ä¸çº§çåºç¨ã
åãææ¯æ¶æ
javaæ¯çº¯é¢å对象å¼åï¼åè½å¼ºå¤§ï¼åæ¯ä¼å¤ï¼æ²¡æjavaä¸è½åç软件ãC/Sä¹å¥½B/Sä¹å¥½ãä»åè½ä¸è®²ï¼æ²¡æè¯è¨å¯ä»¥åjavaç¸æ¯ã
PHPå±äºåèµ·ä¹ç§ï¼å¸æ¶äºjavaåc以åperlçè¯è¨ä¼ç¹ï¼ä¸æ³¨äºèç½é¢åãWEBé¢åPHPæ¥æå¾å¤©ç¬åçä¼å¿ï¼WEBé¢å没æè¯è¨å¯ä»¥åä»æ¯ã
Javaè¯è¨ç¸æ¯PHPæææ¾çä¼å¿ï¼Java使ç¨çæ¯é¢å对象çç³»ç»è®¾è®¡æ¹æ³ï¼èPHPè¿æ¯éç¨é¢åè¿ç¨çå¼åæ¹æ³ãPHPåªè½å®ç°ç®åçåå¸å¼ä¸¤å±æä¸å±çæ¶æï¼èJAVAå¯ä»¥å®ç°å¤å±æ¶æãæ°æ®åºå±ï¼æä¹ åå±ï¼ãåºç¨ï¼ä¸å¡ï¼é»è¾å±ã表示é»è¾å±å½¼æ¤åå¼ï¼èä¸ç°å¨ä¸åçå±é½å·²ç»æä¸äºæççå¼åæ¡æ¸¸ææ¶çæ¯æãä¾å¦Strutså°±æ¯å©ç¨Javaçwebå¼åææ¯å®ç°äºMVCç设计模å¼ï¼èå¨ä¸å¡é»è¾å±ä¹æSpringæ¡æ¶ï¼æ°æ®åºæä¹ åå±æHibernateçæ¡æ¶ãè¿äºæ¡æ¶å¯ä»¥æ¹ä¾¿å¼åè é«æãåçãç§å¦å¾æ¶æå¤å±çåä¸åºç¨ã
äºãæ°æ®åºè®¿é®é度æ¯è¾
Javaéè¿JDBCæ¥è®¿é®æ°æ®åºï¼éè¿ä¸åçæ°æ®åºååæä¾çæ°æ®åºé©±å¨æ¹ä¾¿å°è®¿é®æ°æ®åºã访é®æ°æ®åºçæ¥å£æ¯è¾ç»ä¸ã
PHP对äºä¸åçæ°æ®åºéç¨ä¸åçæ°æ®åºè®¿é®æ¥å£ï¼æ以æ°æ®åºè®¿é®ä»£ç çéç¨æ§ä¸å¼ºãä¾å¦ï¼ç¨Javaå¼åçWebåºç¨ä»MySQLæ°æ®åºè½¬å°Oracleæ°æ®åºåªéè¦åå¾å°çä¿®æ¹ï¼èPHPåéè¦å大éçä¿®æ¹å·¥ä½ã
ä»æ°å¦è¿ç®åæ°æ®åºè®¿é®é度æ¥è®²ï¼Javaçæ§è½ä¹ä¼äºPHPãå®é ä¸ï¼å¯¹äºè·¨å¹³å°ç大åçä¼ä¸åºç¨ç³»ç»æ¥è®²ï¼Javaå ä¹å·²ç»æ为å¯ä¸çéæ©ï¼å¾®è½¯.NETä¸æ¯æ跨平å°ï¼ï¼ä½æ¯å¨äºWebç½ç«åºç¨å¼åæ¥è®²ï¼Javaå´é¢ä¸´ç被PHPè¾¹ç¼åçå±é©ï¼å ä¹ææçèæ主æºé½æ¯æPHP+MySQLï¼èæ¯æJavaçå´å°ä¹åå°ï¼å¨èµæºä¸ï¼ç½ä¸æä¸è®¡å ¶æ°çPHPèµæºï¼å¾å¤èåç大åç½ç«ï¼ä¾å¦FacebookãMediawikiçï¼é½æ¯åºäºPHPçï¼èæåçJavaç½ç«å´å¯¥å¯¥æ å ã
尽管Javaçæ°å¦è®¡ç®åæ°æ®åºè®¿é®é½æä¼å¿ï¼æ¶æä¹ç¸å½å®ç¾ï¼ä½æ¯PHPå´å¯ä»¥ç®åè½»æ¾å°æ¯æé«å¼ºåº¦Web访é®ï¼è½å¤å¿«éå¼ååºç¨ï¼æ¯æPHPçèæ主æºå¤å¦çæ¯ï¼ä½¿å¾ç¨PHPå¼åä¸ä¸ªç½ç«æ¯ç¨Javaå¼åä¸ä¸ªç½ç«è¦å¿«å¾å¤ï¼å®¹æçå¤ãJavaææ¥æçä¼ç¹åªéåä¼ ç»ç以软件项ç®ä¸ºæ ¸å¿çå¼å模å¼ï¼èPHPæ´éåäºä»¥å®¢æ·ä¸ºæ ¸å¿çSaaSçå¼å模å¼ï¼å æ¤ï¼PHPç®åå¨Webç½ç«å¼åçä¼å¿å®å ¨æ¯å 为Webç½ç«å¼åçç¹æ®æ§è导è´çï¼å¹¶éç¼ç¨è¯è¨ç¹æ§æå³å®ã
å ãå¼åææ¬æ¯è¾
PHPæç»å ¸çç»åå°±æ¯ï¼PHP+MySQL+Apacheãé常éåå¼åä¸å°åçWebåºç¨ï¼å¼åçé度æ¯è¾å¿«ãèä¸ææç软件é½æ¯å¼æºå è´¹çï¼å¯ä»¥åå°æå ¥ã
JavaçWebåºç¨æå¡å¨æå è´¹TomcatãJBossçï¼å¦æéè¦æ´å¥½çåä¸åçæå¡æï¼WebSphereåWeblogicã
ä¸ãæºä»£ç å®å ¨
PHPå¼åçç¨åºçæºä»£ç é½æ¯å ¬å¼çï¼ä»äººæ¿å°phpå¼åçç¨åºåé½å¯ä»¥è¿è¡ä¿®æ¹ã
Javaå¼åçç¨åºï¼æåç¨æ·æ¿å°çæ¯åªæ¯ä¸äºç¼è¯å¥½çclassç±»ï¼æ æ³çå°å®æ´çæºä»£ç ï¼å®å ¨æ§é«ã
å «ãæ»ç»
综ä¸æè¿°ï¼ä¸ªäººè®¤ä¸ºï¼PHPéåäºå¿«éå¼åï¼ä¸å°ååºç¨ç³»ç»ï¼å¼åææ¬ä½ãæå¦ï¼è½å¤å¯¹åå¨çéæ±ä½åºå¿«éçååºï¼å¨è°è¯ãåå¸ä¸ï¼PHPä¹è¾Javaç®åã
èJavaéåäºå¼å大åçåºç¨ç³»ç»ï¼åºç¨çåæ¯æ¯è¾å¹¿éï¼ç³»ç»æç»´æ¤ãå¯å¤ç¨æ§è¾å¥½ãJavaçç念æ¯âä¸æ¬¡ç¼åï¼å°å¤è¿è¡âï¼Javaå¨åºç¨æ¡æ¶åºä¸çæ¶ææ¯æ ä¸ä¼¦æ¯çï¼è¿èè¿å ¶ä»ä»»ä½è¯è¨ï¼Javaçæ¡æ¶å©äºå¤§åçååç¼ç¨å¼åï¼ç³»ç»æç»´æ¤ãå¯å¤ç¨æ§è¾å¥½ãè¿æï¼åæ ·åè½çç³»ç»ç¨Javaå¼åçç³»ç»è¦æ¯PHPå¼åçç³»ç»çä»·æ ¼è¦é«ã
JavaåPHPå¨Webå¼åæ¹é¢çæ¯è¾ï¼æ¯è¾PHPåJSPè¿ä¸¤ä¸ªWebå¼åææ¯ï¼å¨ç®åçæ åµæ¯å ¶å®æ¯æ¯è¾PHPåJavaçWebå¼åã以ä¸æ¯java课ç¨å°±å 个主è¦æ¹é¢è¿è¡çæ¯è¾ï¼
ä¸ãè¯è¨æ¯è¾
PHPæ¯è§£éæ§è¡çæå¡å¨èæ¬è¯è¨ï¼é¦å phpæç®å容æä¸æçç¹ç¹ãè¯æ³åcè¯è¨æ¯è¾è±¡ï¼æ以å¦è¿cè¯è¨çç¨åºåå¯ä»¥å¾å¿«ççæphpçå¼åãèjavaéè¦å å¦å¥½javaçè¯æ³åçæä¸äºæ ¸å¿çç±»åºï¼æå¾é¢å对象çç¨åºè®¾è®¡æ¹æ³ãæ以javaä¸å¦php好å¦ã
Javaé¦å è¦ç¼è¯æåèç .classæ件ï¼ç¶åå¨javaèææºä¸è§£éæ§è¡ãJavaçWebå¼åé¦å æ容ææ³å°çå°±æ¯JSP(ç°å¨å·²ç»å°JSP2.0)ï¼åæ¥çjavaçWebå¼åé½æ¯ç¨servletæ¥å®ç°çï¼ç¨servletæ¥å¼åéè¦ç¨åºåå¨javaçæºæ件ä¸åµå ¥å¤§éçhtml代ç ãæ以åæ¥å°±åºç°äºJSP,JSPå¯ä»¥æ¹ä¾¿çåµå ¥å°htmlæ件å½ä¸ï¼å ¶å®jspæ件å²è¡å¹å¨æå¡å¨ä¸æ§è¡çæ¶åé¦å ä¼è¢«åºç¨æå¡å¨è½¬æ¢æservletï¼ç¶ååç¼è¯æ§è¡ãJspå¯ä»¥éè¿servletåJavaBeançæ¯æ产ç强大çåè½ãJavaBeanæ¯ä¸ç§å¯å¤ç¨çã跨平å°ç软件ç»ä»¶ã使ç¨javabeanå¯ä»¥æ¹ä¾¿çå®ç°java代ç åhtmlçå离ï¼è½å¤å¢å¼ºç³»ç»çåè½å软件çå¤ç¨æ§ã
JavaçWebå¼åå±äºSUNå ¬å¸å®ä¹çJ2EEå ¶ä¸çè§èãèä¸å¨J2EEä¸å æ¬äºjavaçWebå¼åçæææ¹é¢ï¼å¦ï¼JSPãServletãJDBCãJNDIãJAVABEANãEJBççãJ2EEå°±ç¹å«éåäºå大åçä¼ä¸çº§çåºç¨ã
äºãæ°æ®åºè®¿é®æ¯è¾
Javaéè¿JDBCæ¥è®¿é®æ°æ®åºï¼éè¿ä¸åçæ°æ®åºååæä¾çæ°æ®åºé©±å¨æ¹ä¾¿å°è®¿é®æ°æ®åºã访é®æ°æ®åºçæ¥å£æ¯è¾ç»ä¸ã
PHP对äºæ£å¯ä¸åçæ°æ®åºéç¨ä¸åçæ°æ®åºè®¿é®å¸¦å¿µæ¥å£ï¼æ以æ°æ®åºè®¿é®ä»£ç çéç¨æ§ä¸å¼ºãä¾å¦ï¼ç¨Javaå¼åçWebåºç¨ä»MySQLæ°æ®åºè½¬å°Oracleæ°æ®åºåªéè¦åå¾å°çä¿®æ¹ãèPHPåéè¦å大éçä¿®æ¹å·¥ä½ã
ä¸ãç³»ç»è®¾è®¡æ¶ææ¯è¾
éç¨JavaçWebå¼åææ¯ï¼éè¦ä½¿ç¨çæ¯é¢å对象çç³»ç»è®¾è®¡æ¹æ³ï¼èPHPè¿æ¯éç¨é¢åè¿ç¨çå¼åæ¹æ³ãæ以ç¨Javaè¿è¡å¼ååæéè¦å大éçç³»ç»åæå设计çå·¥ä½ã
ç°å¨å¼åç½ç«ï¼å¥½åé½æ¯æµè¡ç¨phpï¼é£javawebä¸è¬ç¨å¨åªéå¢å®ä»¬ä¹é´çåºå«åä¼å£å¿å¨åªéå¢ç°å¨å¸åºä¸çoaåºæ¬ä¸å¯å½ç»ä¸ºä¸¤å¤§éµè¥ï¼å³phpéµè¥åjavaéµè¥ãä½å¯¹æ¥è§¦oaä¸ä¹ çç¨æ·æ¥è¯´ï¼çå°çå¾å¾åªæ¯å®ä»¬ç表ç¸ï¼åªæ¯ææ¾çä»·æ ¼å·®å¼ï¼å´å¾é¾çåºå®ä»¬ä¹é´çå®é å·®å¼ãå ¶å®ï¼PHP+MYSQLä¸å¼é±ä¸ä» ä» å±éäºoa软件ï¼èæ¯æ´ä½ä¸PHP+MYSQLå¼åç软å¼æ£®æ¡ä»¶é½ä¸å¦javaå¼åç软件å¼é±ã为ä»ä¹PHP+MYSQLçOA为ä»ä¹ä¸å¼é±å¢é¦å å¾æç½phpåjavaä¹é´çå·®å¼æè¡ã
1ãç³»ç»çææ¯æ¶ææ¯è¾
åå±æ¯å°ç³»ç»è¿è¡ææç»ç»çæ¹å¼ï¼åèæ²»ä¹çææ³æ¯è®¡ç®æºé¢åä¸é常éè¦çææ³ãå¨å¥½çåå±ææ³å¼å¯¼ä¸ï¼ä¾¿è½å®ç°âé«å èãä½è¦åâï¼ä¹è½å°å ·ä½çé®é¢å²è£å¼æ¥ï¼æäºæ§å¶ãæäºå»¶å±ï¼æ´æäºåé èµæºãPHPåªè½å®ç°ç®åçåå¸å¼ä¸¤å±æä¸å±çæ¶æï¼èJAVAå¨è¿æ¹é¢å°±åå强大ï¼å¯ä»¥å®ç°å¤å±çç½ç»æ¶æãè¿ç¨MVCç设计模å¼ï¼å¯ä½¿oaç³»ç»å ·ææ´å é«æãåççç³»ç»æ¶æãææ¯æ¶æçè½åï¼ä½¿è¿ç¨phpç¼åçoa软件系ç»å 天ä¸è¶³ï¼èå天åæ æ³è¡¥è¶³å ¶å 天ä¸çå£å¿ã使å¾ç³»ç»å¨å¯æå±æ§ãéæ±åºåæ§ä¸ä¸JAVAç¼åçoa软件系ç»çå·®è·è¶æ¥è¶å¤§ãæ¶æçå·®è·ï¼æ³¨å®äºphpåçoaå å ¶éæ¯ä¸ªå°å®¶ç¢§çï¼å§ç»æ æ³åjavaè¿ç§å¤§å®¶éºç§åå°ç«æã
2ãæ°æ®åºè®¿é®æ¯è¾
PHPå¯ç¼è¯æå ·æä¸è®¸å¤æ°æ®åºç¸è¿æ¥çå½æ°ãå°èªå·±ç¼åå¤å´çå½æ°å»é´æ¥ååæ°æ®åºãéè¿è¿æ ·çéå¾å½æ´æ¢ä½¿ç¨çæ°æ®åºæ¶ï¼å¯ä»¥è½»æ¾å°ä¿®æ¹ç¼ç 以éåºè¿æ ·çååãä½PHPæä¾çæ°æ®åºæ¥å£æ¯æå½¼æ¤ä¸ç»ä¸ï¼æ¯å¦å¯¹Oracle,MySQLï¼Sybaseçæ¥å£ï¼å½¼æ¤é½ä¸ä¸æ ·ãç±äºPHP对äºä¸åçæ°æ®åºéç¨ä¸åçæ°æ®åºè®¿é®æ¥å£ï¼æ以æ°æ®åºè®¿é®ä»£ç çéç¨æ§ä¸å¼ºã
èJavaéè¿JDBCæ¥è®¿é®æ°æ®åºï¼éè¿ä¸åçæ°æ®åºååæä¾çæ°æ®åºé©±å¨æ¹ä¾¿å°è®¿é®æ°æ®åºï¼è®¿é®æ°æ®åºçæ¥å£æ¯è¾ç»ä¸ãå¦æåæ ·æ¯å°å¼åçwebåºç¨ä»MYSQLæ°æ®æ°è½¬å°ORACLEæ°æ®ï¼PHPéè¦å大ç§åºéçä¿®æ¹å·¥ä½ï¼èä¸æ¯è¾ç¹çãä½JAVAå¼åç便åªéè¦å¾å°çæ´æ¹ä¾¿è½å®ç°ã
æ°æ®åºè®¿é®æ¹å¼çå·®å¼ï¼å¥ å®äºphpå¼ååºçoaåjavaå¼ååºæ¥çoaæ¯é©¬è½¦åç«è½¦çå·®è·ï¼åè åªè½äº¦æ¥äº¦è¶èä¸é¢åº¦æéï¼åè å´æ¯å·¥ä¸åçç»æ¶ï¼ä¸ä» è½å¤å 容ä¸ç©èä¸é度ä¸ç¨³æ¥æåã
3ãå®å ¨æ§å¯¹æ¯
å¨åæ¯å¼æºå跨平å°çjavaé¢åï¼php丢æäºå¾å¤çä¼å¿ãå¨ä»£ç çå®å ¨æ§ä¸å°¤ä¸ºçªåºãphpçå¼åç¨åºå¨å«äººæ¿å°ä»£ç åï¼å¯ä»¥å¾å®¹æçè¿è¡ä¿®æ¹ãèjavaå¼åçç¨åºç±äºæ æ³çå°å®æ´çæºä»£ç ï¼åªè½çå°ä¸äºç¼è¯å¥½çç±»æ件ï¼æ以å®å ¨æ§è¾é«ãå ä¹ç³»ç»æ¶æçä¼å¿ï¼å¨å®å ¨æ§ä¸phpåjavaæ¯ç¸å»çè¿ã
å¦æéè¦å°phpåjavaå¨å®å ¨æ§ä¸å个æ¯è¾çè¯ï¼åä¸ä¸ªå°å·å 顾phpé£æ¯é便æ¿æ¥é便æ¹ï¼æ³æ¿ä»ä¹æ¿ä»ä¹ï¼æ¿çé«å ´è¿è½å¤§ç¬ä¸è¾ææå°æ¤ä¸æ¸¸ãèå 顾javaçæ¶åï¼ä¾¿ä¼åç°è¦å¯æå®ï¼å 设èªå¨æ¥è¦è£ ç½®ï¼å³ä¾¿çªç ´ééé»æ°åè¿å ¥å± 室ãé£å¼é±çä¸è¥¿é½æ¾å¨å å¯åçä¿é©æä¸ï¼åªè½ææ´å ´å¹ãé©ç¾½èå½ã
4ãåç»æ§åæå±æ§
ä»æ´ä½æ¥è¯´ï¼phpéç¨äºä¸å°åç³»ç»ï¼èjavaéç¨äºå¤§åç³»ç»ãPhpè½å¤å°åä¸çäºä»¶å好ï¼ä½å´ä¸éåå®æéæ度è¾é«çå¤é¡¹å¹¶åäºä»¶ã为ä»ä¹è¯´phpéåä¸å°åç³»ç»èä¸éåå大系ç»å¢
é¦å ï¼php缺ä¹å¤å±ç»ææ¯æãè对äºå¤§åçç³»ç»è´è·ç«ç¹ï¼åªè½éç¨åå¸è®¡ç®ãå°æ°æ®åºãåºç¨é»è¾å±å表示é»è¾å±å½¼æ¤åå¼ï¼å¹¶å°åå±çæ ¹æ®æµéåå¼ï¼ç»æäºç»´æ°ç»ãèphpæ°æ°ç¼ºä¹è¿ç§æ¯æã
å ¶æ¬¡ï¼PHPæä¾çæ°æ®åºæ¥å£ä¸ç»ä¸ï¼è¦å°å¤ä¸ªä¸åçæ°æ®åºæ°æ®ç»ä¸éè¦è±è´¹å¾å¤§çåæ°ãèJAVAå没æè¿ç§ç¼ºé·ï¼å¯éè¿SUNJavaçJavaClassåEJBè·å¾è§æ¨¡æ¯æï¼éè¿EJB/CORBA以åä¼å¤ååçApplicationServerè·å¾ç»ææ¯æãå¦IBMçEï¼businessï¼å®çæ ¸å¿æ¯éç¨JSP/ServletçWebSphereï¼æ¯éè¿CGIæ¥æä¾æ¯æçã
å¦æå°Phpæ¯ä½å°æï¼å ·å¤ç¬æ¡ä¸æ¹çè½åãé£ä¹java便æ¯å¸ æï¼å ·æè¾å¥½çåç»æ§åæå±æ§ï¼æ´ä½å¸å±åååè½å强ãè½å¤ææ¥ååä¸é©¬ï¼æåé鹿ä¸åã
5ãå¼åææ¬æ¯è¾
æ¢ç¶phpå¨è¯¸å¤æ¹é¢é½ä¸å¦javaä¼å¼ï¼é£ä¹phpå¼ååºçoa产åä½ä»¥ä¸æ¥ç»java产åç«äºå¢å¨äºPhpéµè¥æ®éèµ°çæ¯ä½ç«¯è·¯çº¿ï¼èjavaéµè¥èµ°çæ¯ä¸é«ç«¯è·¯çº¿ã两è ä¹é´äº¤*çåºåè¾å°ã
è½¯ä»¶ä»·æ ¼çé«ä½å¾å¤§ç¨åº¦ä¸åèªèº«ææ¬ååè½ç¸æé©ãphpçå ¥é¨é¨æ§è¾ä½ï¼ç»å¤§å¤æ°å¦è¿cçç¨åºåé½å¾å®¹æ转å为phpç¨åºåï¼è¿ä½¿å¾phpç¨åºåçæ³æ»¥æç¾çåæ¶ï¼ä½ææ¬çphp软件产åä¹å±åºä¸ç©·ã以PHPæç»å ¸çç»åPHP+MySQL+Apache为ä¾ï¼ç±äºææ软件é½æ¯å¼æºå è´¹çï¼æ以æå ¥å¹¶ä¸é«ã
èjavaå¼åéè¦ç¹å®çç¯å¢ï¼æé¿ä¸ºä¸ä¸ªåæ ¼çjavaç¨åºåéè¦ä¸å®çæ¶é´ï¼javaç¨åºåçææ¬ä¹æ¯phpææ¬çå åãJavaçwebåºç¨æå¡å¨å è´¹çæTomcatãJBossçï¼èè¦æ³å ·æå¾å¥½çåä¸åæå¡ä¾¿å¿ é¡»éç¨WebSphereåWeblogicãè¿å ¶ä¸æå ¥çææ¬æ å½¢ä¸ä¾¿è¶ æ¯phpææ¬çNåãæ以ï¼javaå¼åoaçææ¬è¦è¿è¿é«äºphpå¼ååºæ¥çå类软件产åãä½ä¹æ£ç±äºjavaå¼åçææ¬è¾é«ï¼å¾é¾å®ç°æè¢åçæå é¾è¶çå¯è½ï¼ä¹ä½¿å¾javaç¨å¼ååºç产åé¨æ§æ´é«ã
ä¸æä¸è¯è´§ï¼å°±æè´§æ¯è´§ãPhpå¼ååºæ¥ç产åä¹è½ç¨ï¼ä½æ¯åjavaå¼åºçå类产åæ¯æ²¡æ³æ¯è¾çãæ£å 为phpå¼åç产åæ´ä½æ§è½åjavaå¼åçç¸å»çè¿ï¼æ以phpè¿ç¨ä½ææ¬çä½ä»·ä¼å¿ååç±»çjava产åæäºï¼ä»¥ä»·æ ¼è½å·®æ¥å¹³è¡¡è´ä¹°è çå¿æãæ以ï¼PHP+MYSQLçOAä¸å¼é±ä¹å°±ä¸è¶³ä¸ºæªäº
第äºç§
æ¯è¾PHPåJSPè¿ä¸¤ä¸ªwebå¼åææ¯ï¼å¨ç®åçæ åµæ¯å ¶å®æ¯æ¯è¾PHPåJavaçWebå¼åã以ä¸æ¯æå°±å 个主è¦æ¹é¢è¿è¡çæ¯è¾ï¼
ä¸ãè¯è¨æ¯è¾
Phpæ¯è§£éæ§è¡çæå¡å¨èæ¬è¯è¨ï¼é¦å phpæç®å容æä¸æçç¹ç¹ãè¯æ³åcè¯è¨æ¯è¾è±¡ï¼æ以å¦è¿cè¯è¨çç¨åºåå¯ä»¥å¾å¿«ççæphpçå¼åãèjavaéè¦å å¦å¥½javaçè¯æ³åçæä¸äºæ ¸å¿çç±»åºï¼æå¾é¢å对象çç¨åºè®¾è®¡æ¹æ³ãæ以javaä¸å¦php好å¦ã
Javaé¦å è¦ç¼è¯æåèç .classæ件ï¼ç¶åå¨javaèææºä¸è§£éæ§è¡ãJavaçwebå¼åé¦å æ容ææ³å°çå°±æ¯JSPï¼ç°å¨å·²ç»å°JSP2.0ï¼ï¼åæ¥çjavaçwebå¼åé½æ¯ç¨servletæ¥å®ç°çï¼ç¨servletæ¥å¼åéè¦ç¨åºåå¨javaçæºæ件ä¸åµå ¥å¤§éçhtml代ç ãæ以åæ¥å°±åºç°äºJSP,JSPå¯ä»¥æ¹ä¾¿çåµå ¥å°htmlæ件å½ä¸ï¼å ¶å®jspæ件å¨æå¡å¨ä¸æ§è¡çæ¶åé¦å ä¼è¢«åºç¨æå¡å¨è½¬æ¢æservletï¼ç¶ååç¼è¯æ§è¡ãJspå¯ä»¥éè¿servletåJavaBeançæ¯æ产ç强大çåè½ãJavaBeanæ¯ä¸ç§å¯å¤ç¨çã跨平å°ç软件ç»ä»¶ã使ç¨javabeanå¯ä»¥æ¹ä¾¿çå®ç°java代ç åhtmlçå离ï¼è½å¤å¢å¼ºç³»ç»çåè½å软件çå¤ç¨æ§ã
Javaçwebå¼åå±äºSUNå ¬å¸å®ä¹çJ2EEå ¶ä¸çè§èãèä¸å¨J2EEä¸å æ¬äºjavaçwebå¼åçæææ¹é¢ï¼å¦ï¼JSPãServletãJDBCãJNDIãJAVABEANãEJBççãJ2EEå°±ç¹å«éåäºå大åçä¼ä¸çº§çåºç¨ã
äºãæ°æ®åºè®¿é®æ¯è¾
Javaéè¿JDBCæ¥è®¿é®æ°æ®åºï¼éè¿ä¸åçæ°æ®åºååæä¾çæ°æ®åºé©±å¨æ¹ä¾¿å°è®¿é®æ°æ®åºã访é®æ°æ®åºçæ¥å£æ¯è¾ç»ä¸ã
PHP对äºä¸åçæ°æ®åºéç¨ä¸åçæ°æ®åºè®¿é®æ¥å£ï¼æ以æ°æ®åºè®¿é®ä»£ç çéç¨æ§ä¸å¼ºãä¾å¦ï¼ç¨Javaå¼åçwebåºç¨ä»MySQLæ°æ®åºè½¬å°Oracleæ°æ®åºåªéè¦åå¾å°çä¿®æ¹ãèPHPåéè¦å大éçä¿®æ¹å·¥ä½ã
ä¸ãç³»ç»è®¾è®¡æ¶ææ¯è¾
éç¨Javaçwebå¼åææ¯ï¼éè¦ä½¿ç¨çæ¯é¢å对象çç³»ç»è®¾è®¡æ¹æ³ï¼èPHPè¿æ¯éç¨é¢åè¿ç¨çå¼åæ¹æ³ãæ以ç¨Javaè¿è¡å¼ååæéè¦å大éçç³»ç»åæå设计çå·¥ä½ã
åã跨平å°æ§
JavaåPHPé½æå¾å¥½ç跨平å°çç¹æ§ãå ä¹é½å¯ä»¥å¨ä¸ä½ä»»ä½ä¿®æ¹çæ åµä¸è¿è¡å¨Linuxæè Windowsçä¸åçæä½ç³»ç»ä¸ã
äºãå¼åææ¬æ¯è¾
PHPæç»å ¸çç»åå°±æ¯ï¼PHP+MySQL+Apacheãé常éåå¼åä¸å°åçwebåºç¨ï¼å¼åçé度æ¯è¾å¿«ãèä¸ææç软件é½æ¯å¼æºå è´¹çï¼å¯ä»¥åå°æå ¥ã
Javaçwebåºç¨æå¡å¨æå è´¹TomcatãJBossçï¼å¦æéè¦æ´å¥½çåä¸åçæå¡æï¼WebSphereåWeblogicã
å ãåå¸å¼å¤å±æ¶ææ¯è¾
PHPåªè½å®ç°ç®åçåå¸å¼ä¸¤å±æä¸å±çæ¶æï¼èJAVAå¨è¿æ¹é¢å°±æ¯è¾å¼ºå¤§ï¼å¯ä»¥å®ç°å¤å±çç½ç»æ¶æãæ°æ®åºå±ï¼æä¹ åå±ï¼ãåºç¨ï¼ä¸å¡ï¼é»è¾å±ã表示é»è¾
xnviewåxnview mpåªä¸ªå¥½
Xnviewä»åºæ¥çæ¶åæå°±å¨ç¨ï¼å个çæ¬æé½ç¨è¿ã
XnView MP æ¯XnView çæ°çæ¬ï¼å ¶ä¸MPæ¯ Multi Platform ç缩åï¼å®å°å®ç°å¤å¹³å°çæ¯æ并åºäºåæ ·çæºä»£ç ï¼ä¸åå¹³å°ä¹å°æä¾ç»ä¸ççé¢åä½éªï¼å¹¶æç»å代以å XnView çå ¶ä»çæ¬ï¼LinuxãMac OS XãWindowsï¼ãXnView MPå 天æ¯æUniCodeï¼è½å è½½åç§è²æ·±çå¾çï¼8// ä½ï¼ï¼æ´æ¹ä¾¿æ¯æå¤è¯è¨ï¼ææ¬æ件ï¼ï¼ä½¿ç¨æ´ä¼åçæ°æ®åºãååçå è´¹ã绿è²ãé«éãå°å·§ã跨平å°çç¹æ§ï¼XnView MPå°ä¼æ为çå¾è½¯ä»¶çå¦ä¸ä¸ªç»å ¸ã
XnViewMPçç®ä»ï¼XnViewç»è¿ä¸ç³»åççæ¬æ´æ°ï¼ä½è æè¯å°å¼ååºäºä¸äºç¶é¢ï¼äºæ¯ä¾¿å¦èµ·çç¶ï¼éå代ç ï¼æ¨åºäºå为XnViewMPçå¤å»çï¼ä»¥æ±è½å¤è¾¾å°æ°çé«åº¦ï¼å¨â轻便âåâåè½â以åâæ§è½âä¹é´æ¾å°ä¸ä¸ªå¹³è¡¡ç¹ã
å¨æç¨æ§æ¹é¢XnViewMPæ¯XnView好ç¨ä¸äºï¼çé¢æ´æ¼äº®ï¼æçæ´æäºä½¿ç¨ï¼æ¶èãåç±»æ ç¾ä»¥æåç«æå¨å·¦ä¾§ï¼æä½æ´æ¹ä¾¿ï¼å ¨å±é¢è§æäºæ¼äº®çæé®ï¼èªå¨å±ç¤ºå¥½åç¨äºç±»ä¼¼æ»ç³ææï¼å¨å³ä¾§å¼¹åºè¯¦ç»æ°æ®ï¼æ»ç³æ¯ä¸ä¸å·¦å³é½ä¼å¼¹åºæä½è¡¨çï¼ï¼å¿«æ·é®ä¹æäºå¾å¤§çä¿®æ¹ï¼è¿å»ä¸ä¸å¾çç¨ç©ºæ ¼ï¼ç°å¨æ¹ç¨é¼ æ æ»è½®ï¼ä¿¡æ¯æ¡åé¢è§æ¡å¹¶æå¨ä¸ï¼è¿å»æ¯åªæ¾ç¤ºé¢è§æ¡ï¼å®ä¹ç±»å«å³é®å¯æ¹ä¾¿è®¾ç½®ã
ä½è¿æä¸äºå°é®é¢ã
1ï¼æ±åä¸å®å ¨ï¼ç»å¾çåæ ç¾çå°æ¹è¿æ¯è±æï¼ä½XnView便没è¿ä¸ªé®é¢ã
2ï¼å ³èå¾çä¸æ¹ä¾¿ï¼è®¾ç½®å°æ¹ä¸èµ·ä½ç¨ãï¼çæµå¯è½è¿æ¯beatçåå ï¼ã
3ï¼å ¨å±çå¾å¸¸å¸¸åºåå线ï¼è«ä¸æ¯ä»ä¹ææ线ï¼åªæ¯å±ä¸è¯è´§ï¼åºç°å°æªæ¾å°è§å¾ï¼ã
4.åè½åå°äºï¼å°¤å ¶æ¯å¾æç¨çå¾çæ¼æ¥åè½ã
XnView MP åXnViewçä¸åå¤å¯è½æ´å¤ãç±äºXnView MP å°ä¸å®åï¼å»ºè®®è¿æ¯ä½¿ç¨XnViewçææ°çã尽管å¦æ¤ï¼æ对XnViewMPçåæ¯å¾æ¯ç好ï¼å代XnViewä¹åªæ¯æ¶é´é®é¢ã
çå¾çç¨ä»ä¹è½¯ä»¶å¥½?
é®é¢ä¸ï¼æ³å¨çµèä¸çç §çï¼ç¨ä»ä¹è½¯ä»¶å¥½ ACD çå¾è½¯ä»¶ï¼ä¸éãï¼
å¾çå¾å¤ç§æ ¼å¼çå¾ç æµè§é度快ã
é®é¢äºï¼ææºç¨ä»ä¹è½¯ä»¶çå¾ç好 å®åå°±ç¨å¿«å¾æµè§
é®é¢ä¸ï¼ä¸è¬çµèéçå¾çç软件å«ä»ä¹? åå»âæççµèââå¨ä¾§ä¸é´æ¾å°âæ§å¶é¢æ¿â并åå»âæ¾å°âæ·»å æå é¤ç¨åºâ并åå»âæ¾å°ACDSEEç¨åºâå¸è½½âOKäºï¼å·²ç»æ²¡æé£ä¸ªç¼çäº
é®é¢åï¼ææºçå¾çç¨ä»ä¹è½¯ä»¶å¥½ï¼ 软件å称ï¼å¿«å¾æµè§ãä¸æ¯å¿«å¾ï¼æ´ä¸æ¯å¾®åå¿«å¾ï¼androidç³»ç»å¹³å°ä¸æ好ççå¾å©å¨ï¼å åä¸ç¨æ·çä¸è½½éãç¨äºé£ä¹å¤å¹´è¿æ¯é£ä¹äººæ§åï¼çº¯ä¸ªäººææï¼çº¯å®è¯ãåªé0.Mä¸å 空é´ï¼è¿è¡æµç ï¼å大ç½ç«ä¸è½½æè¡æ¦ç¬¬ä¸çè¯å®æ¯å®ï¼èµ¶ç´§ä¸è½½å§ï¼èµ¶ç´§ç»æä½³çæ¡å§ï¼ï¼ï¼ï¼
é®é¢äºï¼çå¾çç¨ä»ä¹è½¯ä»¶ 常ç¨çWindowsçµèç³»ç»çå¾è½¯ä»¶
çå¾çï¼æ¯ç¬è çµèéæ£ä½¿ç¨ççå¾è½¯ä»¶ï¼å¯å¨è¿ éï¼æä½æ¹ä¾¿ï¼ä½¿ç¨äºå¼ºå²çå¾åå¼æï¼çå¾é度æå¿«ï¼ç»è´¨é« *** å®ï¼æ¯æå ¨å±æ¥çä¸å¹»ç¯çæ¥çï¼æ é¡»è¿åç®å½å³å¯è¿è¡ç¼©ç¥å¾æ¥çï¼å¯¹äºå¤§å¾çï¼è¿è½å¨é¸ç°å¾ä¸è¿è¡ä»»æ缩æ¾æµè§ï¼ç¿»é¡µæ¶ä¸ç¨æ¾æé®ï¼ç´æ¥å¨å¾çå·¦å³ä¸¤ç«¯å³ä¼æ¾ç¤ºç¿»é¡µç®å¤´ï¼æéè¦çæ¯çå¾çæ¯æå¤è¾¾ç§å¾çæ ¼å¼ï¼æBMP/PNG/JPGç常è§æ ¼å¼ï¼ä½ç®åçå¾çéç¨äºææWINSå¹³å°(å«WIN8)ï¼å¹¶ä¸å ¼å®¹WINSå¾çæ¥çå¨åACDSEEæ¥çå¨ç大é¨åæé®ï¼æå ¶å®¹æä¸æ
ACDSeeï¼é常æµè¡ççå¾è½¯ä»¶ä¹ä¸ï¼ä¼ç¹æ¯åè½å¼ºå¤§ï¼é½å ¨ï¼æ¯æå¾ççç¼è¾ãåå¤çãæ件管ççï¼ç¼ºç¹æ¯ç³»ç»è¦æ±ãæ¶è´¹çï¼å½ç¶è½¯ä»¶æå è´¹ççï¼ä½æ¯åè½è¯å®æ ***
FastStone Image Viewerï¼è½¯ä»¶çé¢åACDseeç¥ä¼¼ï¼å è´¹ï¼éåä¸ç¨éï¼èå°å·§ãæä¾ç®æçå¾åç¼è¾åè½å æ¬å¯¹å¾ççè£åªï¼æ·»å ææ¬ã线æ¡åæ°´å°ä»¥åè°æ´åç§åæ°çï¼å®è¿å ·æå¾åçæ¹é转æ¢åéå½åçåè½ã
XnViewï¼æ¥èªæ³å½ï¼æ¯æå¤ç§å¾çæ ¼å¼ï¼è¿æ¯ææ件æ©å±ï¼å®è£ æ件åæ¯æå¾çæ ¼å¼è¿ç§ãXnViewåæ¶è¿æ¯æå¨ç»gifãå¤é¡µé¢tiffãå¤å¾åå¾æ 以åmpegãaviãwavãaiffé³è§é¢æ ¼å¼åQuicktimeæ ¼å¼çæ件ãåè½å¼ºå¤§ï¼ä½ç§¯å°ï¼çå¾æ¹ä¾¿
iSeeç±çï¼æ¯ä¸æ¬¾å°å·§è½»å¿«ï¼ç §çæ ¼å¼æ¯ææå ¨é¢ççå¾è½¯ä»¶ãç±çå¯ä»¥å®ç¾æ¿æ¢windowsçå¾ï¼ä¸ºwindowsèµæºç®¡çå¨æä¾å¼ºå¤§çå¾çæµè§åè½ï¼å¹¶ææä¿æ¤ç¨æ·ç§å¯å¾çãä½ç§¯å°å·§ï¼çå¾è¶ å¿«ï¼ç®åãæ¶å°ï¼æå®æ´çç §çæ ¼å¼æ¯æï¼å¯æ©å±ç个æ§åå¹»ç¯çææ¾ï¼å°ç§å¯å¾çè½»æ¾è½¬æ¢ä¸ºå®å ¨å¾çï¼ææä¿æ¤ä¸ªäººéç§ï¼æ©å±ç½ä¸å¨çº¿åè½ï¼å¯å«æ¿ACDsee
ç¾å¾ççï¼å½äº§ä¼ç§çå¾è½¯ä»¶ï¼çé¢ç¾è§ç®çº¦ï¼éç¨å ¨æ°çPEV-3å¾åå¼æï¼éè¿æ¯æIntelåAMDæ ¸å¿çMMXã3DNOWææ¯ï¼åç¬å®¶å¤çº¿ç¨è¿ç®ææ¯è½å¨è¶ ä½èµæºå ç¨çæ åµä¸æ¸ æ°å¿«éçæµè§å¤§å¾ï¼å¾çé¢è§é度æ´å¿«ï¼å³ç¹å³çï¼å¹¶ä¸æ¯æBMP/PNG/JPG/PSD/RAWçå¤è¾¾ç§å¾åæ ¼å¼ãæ´å¯ç´æ¥æµè§PDFææ¡£ï¼å¦å¤ï¼ç¾å¾ççå®ç¾æ¯æCMYKå°å·è²å¾çï¼æ¯æ常ç¨æ件夹æ¶èãæ¹éæ转ãæ¹å尺寸ãéå½åç常ç¨æä½ãé常å¼å¾å¤§å®¶ä½¿ç¨ï¼
Picasaå¾çæ¥çå¨ (Picasa PhotoViewer) ï¼Picasaå ç½®çå¾çæµè§å¨ï¼å¯å¨é度å¾å¿«ï¼å°å ¶åç¬æååºæ¥ï¼å¯ä»¥å为系ç»é»è®¤çå¾çæ¥çå¨ãæ¯æå¾çç±»åï¼jpgãjpeãjpegãtifãtiffãbmpãgifãpngãtgaãwebpãrawãcrwãcr2ãnefãorfãdcrãmrwãpefãrafãsrfãdngãkdcãsr2ãarwã3frãx3fãrw2ãnrwã
缺ç¹ï¼ä¸æ¯æGIFå¨ç»æ¾ç¤ºï¼å¯ä»¥å¨é ç½®éæ©åæ¶å¯¹GIFæ ¼å¼çå ³èãä¼ç¹ï¼å¯ä»¥å¸®å©æ¨å¨è®¡ç®æºä¸ç«å³æ¾å°ãä¿®æ¹åå ±äº«ææå¾çï¼æ索硬çä¸çç¸çå¾ççé度é常快ã
DevalVR Playerï¼ä¸ä¸ª3Dçå¾è½¯ä»¶ï¼å¯ä»¥ç¨å®æµè§3Då ¨æ¯å¾çï¼å¯è§£å³ä¸è¬çå¾è½¯ä»¶çä¸å°3Då ¨æ¯å¾ç3Dç¹æçé®é¢
IrfanViewï¼è¿è¡é度快ãå°å·§ï¼åè½å¼ºå¤§çå è´¹ï¼è½¯ä»¶å¤§å°ä¸å°2Mãåºæ¬çåè½å æ¬å¾çãé³é¢ãè§é¢æµè§ï¼å¾çæ¹éæ ¼å¼è½¬æ¢ãæ¹ééå½åï¼JPEå¾çæ ææ转çã
å¯ççå¾ï¼æé å¯çå½±åï¼ä¹æ¯çå¾ãå¾ç管ççä¸éæé ãç¬ç¹ç3Då¾çå¢ï¼ç»ä½ ä¸ä¸......>>
é®é¢å ï¼å¥½ççå¾è½¯ä»¶æåªå ç§? acdseeé£ä¸ªæå¼æç¹æ ¢ï¼å»ºè®®ä½¿ç¨å å½±éæ¯æï¼å å½±ççï¼ï¼å¾å¥½ç¨ç
é®é¢ä¸ï¼å¾çç¨ä»ä¹è½¯ä»¶å¥½æå¼å¥½ ACDSee V3.1 SR1âå æ¬å¯¹ç¨åºé¨åçé¢å¸å±è¿è¡äºå¾®è°çâç®ä½ä¸æ深度ç¾åç 软件大å°ï¼4. MB 软件类å«ï¼å½äº§è½¯ä»¶ 软件ææï¼å è´¹ç 软件è¯è¨ï¼ç®ä½ä¸æ åºç¨å¹³å°ï¼Win, WinXp, Win, Nt, WinMe, Win9xæ¬ç¾åçå¨èè²ç½é çåºç¡ä¸è¿è¡æ·±åº¦ç¾åä¿®æ£ï¼ç¾åèå´å ä¹æ¶µçææç»ä»¶çå个ç»èï¼1. ä»èåãå·¥å ·æ ãæ件å°æä»¶å ³èï¼ç»ç»æ¢ææ°é²çç彩è²å¾æ ï¼è®©èç¨åºçåæ°æ´»åï¼2. å®ç¾å è½½XPæ ·å¼ä¸ä¼åºç°ç¹å»âé项â-âæ¥çå¨âæ ç¾æ¶å¼¹åºâéæ©èæ¯å¾åâçªå£çé误ï¼3. 对ç¨åºé¨åçé¢å¸å±è¿è¡äºå¾®è°ï¼æ´æ¢é¨åæé®é¢çæ件ï¼ä½¿ç¨åºæ´å ç¾è§å®ç¨ï¼4. å®è£ æ¶é¤æ³¨å主ç¨åºæ件å¤ï¼åæ¶è®©PicaViewä¹æ³¨åæ件ï¼æé«PicaViewé¦æ¬¡å¯å¨çé度ã====ä¸è½½å°åï¼ soft2.greendown/...ix.exe该çæ¬å¯å¨é度快ï¼æ¯çå¾è½¯ä»¶çé¦éã
é®é¢å «ï¼è¾¨è®¤ç §ççåæ好ç¨ä»ä¹è½¯ä»¶ å âä½ çç §ç被PSè¿äºï¼ââç说ï¼ææ¬äºå°±æ¾åºè¯æ®æ¥ï¼ââè¿ä¸ªâ¦â¦âæ 论æ¯æåæå¨å客çå¸ ç §ï¼è¿æ¯ä½ æå ´è¶£çMMå¾çï¼ææ¯å¨æ·å®ä¸ä¹°ä¸è¥¿ï¼ä½ æ¯å¦å¸¸å¸¸æçé®ï¼è¿ç §çå°åºæ¯ä¸æ¯åæ±åå³çå¢ï¼è¿éæä½ å æç§ç¬ï¼çç¸åç¡ç¾ï¼ä¹ä¼é²åºå°¾å·´çï¼ååï¼
å¨çµèä¸ççå¾æ¼äº®çè¡£æï¼å°æä¹ååç°æå¾å¤ççµï¼èèç³»å家ä¹åï¼å家似ä¹æ°¸è¿é½åªæä¸ä¸ªè§£éââæ¾ç¤ºå¨è²å·®é®é¢ï¼åï¼èå®è¯´èªå·±æ¯âå·âæ¥çç´ æPSçå¤çå¿«ï¼ç½ä¸æä¸å°æ¹æ³å¤æç §çæ¯å¦è¢«ä¿®æ¹è¿ï¼å¦ä»ç»æ¥çç §çç»èæ¯å¦æ£å¸¸ãåå¤è²è°æ¯å¦èåãå æºæ¯å¦ç¬¦åççï¼å¯æ¯è¿äºå¯¹äºå¯¹æå½±ä¸çææ®éç人æ¥è¯´ï¼æ çé¾åº¦å¤ªå¤§ãå¦ä½ä½¿ç¨ç®åçæ¹æ³è¯å«è¢«PSè¿çç §çå¢ï¼
1ãçå¾çå±æ§
å¾1
å¾2
å¨å¾ççæ件å±æ§ä¸ï¼æç §ç¸æºç §ç¸æ¶ç详ç»ä¿¡æ¯ï¼å æ¬å¿«é¨é度ãå åçè³å æ¬ä½¿ç¨çæ影设å¤åå·ççï¼å¦æä¿®æ¹è¿ï¼è¿äºä¿¡æ¯å°±ä¸å¤åå¨ãé¦å å³é®åå»ç½ä¸çå¾çï¼æå®ä¿åæ为æ件ï¼ç¶åå³é®åå»âæ件âå±æ§âæè¦âï¼è§å¾1ã2ï¼ãå¾1ä¸å æ¬äºç §ç¸æ¶ç详ç»ä¿¡æ¯ï¼èå¾2ä¸åªæå¾çèªèº«çç®åä¿¡æ¯ï¼ä¸å°å 容被ä½è å é¤äºï¼é¢æPSåâæ¤å°æ é¶ä¸ç¾ä¸¤âçæè§ãè¿ä¸ªæ¹æ³ç®åæè¡ï¼ç¨å®å¯¹ä»ä¸è¬ç奸åé常ææãä¸è¿ç°å¨é¤äºæ¯è¾å级ç奸åä¹å¤ï¼æ°´å¹³ç¨é«çå ¶ä»å¥¸åå¾å®¹æ使ç¨è½¯ä»¶å°è¿äºä¿¡æ¯ä¿®æ¹ã
2ãæ索让ç¸ä¼¼å¾ç大æå
å¾3
ä¿è¯è¯´âä¸æä¸è¯è´§ï¼å°±æè´§æ¯è´§âï¼å¦ææ类似çå¾çè¿è¡å¯¹æ¯ï¼é£ä¹è¯å®è½åç°å¾ççå¾å¤é®é¢ï¼æ¯å¦æ¯å¦çå¾ãæ¯å¦ä¿®æ¹çã大家å¯ä»¥ä½¿ç¨è°·æå¾çï¼ç §çï¼æç´¢ï¼ççæ没æ类似ä½æ¯ä¸ä¸æ ·çå¾çï¼è§å¾3ï¼ãä»å¾3ä¸å¯ä»¥çåºï¼æç´¢å°äºå¾å¤ç¸å ³çå¾çï¼ä¸è¿å¾çç¨æ¾åä¹±ï¼å¦æè¦æ±ä¸é«ï¼å¯ä»¥ç´æ¥å¨æ·å®ä¸æç´¢ç¸å ³å¾çã
3ãç¨è®°äºæ¬æ¥çå¾çæºç
å¾4
å¼ç©ç¬å§ï¼ä½¿ç¨è®°äºæ¬æ¥çå¾çï¼å¬è¯´ç¨ç»å¾ãæµè§å¨è¿æä»ä¹è½¯ä»¶æ¥çå¾ï¼å°±æ¯æ²¡æå¬è¿ç¨è®°äºæ¬æ¥æ¥çãå ¶å®ï¼ä½¿ç¨è®°äºæ¬æ¥çå¾çï¼å°±æ¯æ¥çå¾ççæºç ãå¨å¾çæ件信æ¯ç第2è¡ï¼å¦æç¨PSä¿®æ¹ï¼ä¼æç¸åºçä¿¡æ¯ï¼å æ¬ä¿®æ¹å·¥å ·ãçæ¬ä¿®æ¹æ¶é´ççï¼è§å¾4第äºè¡ä¸ååºçé¨åï¼ï¼è¿å°±æ¯çç¸ç尾巴å¦ï¼
4ãç¨JPEGsnoopå¤ææ¯å¦è¢«ä¿®æ¹
å¾5
å¤æ°ç §çå¤ç软件é½ä¼å¨è¢«å¤çç §çä¸å å ¥èªå·±çä¿¡æ¯ï¼ä½æ¯å¦æè¦å°å ¶æ¶å»ä¹ä¸æ¯é¾äºãæ¶å»è¿äºä¿¡æ¯ä¹åï¼ä½¿ç¨ä»¥ä¸çæ¹æ³å¯è½é½ä¸å¤ªå¥½ä½¿ã让æ们请åºJPEGsnoop软件æ¥ï¼å¸®å©æ们解å³è¿ä¸ªé¾é¢ãJPEGsnoopå以ä¸çæ¹æ³ææ¬è´¨çä¸åï¼å®ä¸ä½å¯ä»¥æ ¹æ®å¾çä¸è®°å½çä¿¡æ¯æ¥å¤è¯»ç §çæ¯å¦è¢«ä¿®æ¹ï¼è¿è½é åå¾çä¸çå ¶å®ç¼ç ä¿¡æ¯æ¥å ±åå¤æç §çæ¯å¦åæ±åå³ãæ 论å¾çå¤ç软件å¦ä½å è¿ï¼æ»å¸¦æèªå·±ç¼ç ä¿¡æ¯ãç±äºå å ¥äºç¼ç ä¿¡æ¯çå¤æï¼æ以æ个人认为JPEGsnoopå¤æå¾çæ¯å¦è¢«ä¿®æ¹ç¸å½å¯é ï¼å¼å¾ä¿¡èµãJPEGsnoopä¸ä» æ¯ææ®éçJPGå¾çï¼ä¹æ¯æå åµå¨å ¶å®åªä½æ件ä¸çJPGå¾çï¼å¦ PDFãAVIãMOV çï¼ãèå´ç¸å½å¹¿å¦ï¼ä¸è½½è½¯ä»¶ä¹åï¼åå»å³å¯è¿è¡å®è£ ãç±äºå ¶ä»å¾çå¤ç软件ä¸æåå±ï¼JPEGsnoopè¦ä¸æå级ï¼ä»¥ç¡®ä¿è½¯ä»¶çæ£æµæ£ç¡®æ§ï¼æ以注æè¦å¾éä¸è½¯ä»¶èªå¨å级ã使ç¨JPEGsnoopé常ç®åï¼åå»FileâOpenImageï¼æå¼éè¦æ£æµçå¾çæ件ï¼å³å¯è¿è¡æ£æµãJPEGsnoopæ¾ç¤ºçä¿¡æ¯é常å¤ï¼ç §çæåçæ£æµç»ææ¾ç¤ºå¨æåä¸é¡µä¸ï¼è§å¾5ï¼ãå¨å¾4çæ¹æ¡ä¸ï¼æ¸ æ°å°æ¾ç¤ºåºäºå¾ççå¤ç软件ï¼Adobe Photoshop CS3 Windowsï¼åç»è®ºï¼Image isprocessed/editedï¼ä»£è¡¨å¾ç被修æ¹è¿ï¼ãJPEGsnoopæåçæ£æµç»ææåç§å¯è½ï¼ç §ç被å¤......>>
é®é¢ä¹ï¼ä»ä¹è½¯ä»¶å¯ä»¥æå¼åç§æ ¼å¼çç §çï¼ PSåºè¯¥æ¯å¾ä¸ä¸çå¾çç¼è¾è½¯ä»¶ï¼å¤§å¤æ°æ ¼å¼é½è½æå¼ç¼è¾ã
ä½æ¯ä¹éªæé¤ä¸ªå«ç»å¾è½¯ä»¶çç¹æ®æ ¼å¼ã
å¦ææ¯çå¾è½¯ä»¶ï¼é£å°±æ æè°äºï¼å¤§å¤æ°çå¾çWindowsçèªå¸¦çå¾è½¯ä»¶å°±è½çã
é®é¢åï¼ä»ä¹è½¯ä»¶è½æ¥ç详ç»çç §çä¿¡æ¯ï¼ å¦æå¾çå¨æ¬å°ï¼å³é®å¾çå±æ§ï¼é«çº§ï¼å°±è½çã ä¹å¯ä»¥å®è£ å å½±éæ¯æç软件å¯çã ç½é¡µæµè§ï¼å¯ä»¥å®è£ exif软件åï¼éæ°æå¼æµè§å¨ï¼å³é®å¾æ¢ï¼exif
营销型网站大概多少钱能做一个?
对于有实力的公司来说,制作一个网站的源码源报价需要根据网站的规模与功能来制定,因此,识货识货企业一定要首先明确一下自身的源码源需求,再来确定网站的识货识货功能。在您知道需求之后,源码源solidityswap源码可以告诉建站公司,识货识货建站公司会根据您的源码源构思或者想法给您一个参考的报价。网站建设的识货识货价格是没有硬性标准的,价格只是源码源一个参考值,因为不同的识货识货建站公司其品牌实力不同,当然获得的源码源附加值也会存在差异。客观的识货识货说,进行合适的源码源比较是有助于客户了解更多的情况,从而做出明智的识货识货选择。
不怕不识货,就怕货比货,好的营销型建设公司就是通过这样的比较够被发现的。当然,性价比对于企业来说是应当追求的,可是企业如果过度的在意价格而忽视建站公司在行业的口碑也是比较片面的,要知道,一家有实力受欢迎的建站企业一定在行业中有着不错的口碑,从他们的真实案例中也可以看出项目制作的水平。
一个好的程序员至少应该具备哪些条件?
楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,
and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还
是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据
说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前
身。当然是解签裂变源码传说了,但足见他的功力。另一个传说是,年初的时候,DARPA让BBN在
Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封
喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿
个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你
怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯
伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把
Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同
事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯
发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI
的主要作者之一。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄
聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实
战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。年代初只要能在PC
上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein,
然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说
自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人
是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"
,怎样显示网址源码不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听
取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程小时以
上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过
呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还
是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们
叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意
思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别
人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发
员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然
后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷
爷到NT3.5时,管理名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。
他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而
归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite
word"。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。找不到struts源码高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,
学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,
或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句
吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别
人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高
爷爷不爽过,学者本色的说。想想那可是年代初啊,高爷爷写编译器写多了,顺带就搞
出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比
赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到年就code freeze,还附带2^n
美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可
谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没
有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让
老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那
完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我
们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,图片转点阵源码总是面带
谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他
捐献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche
老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主
要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。年还是
计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山
仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是
他和DMR怒了,在年到间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不
知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在年又把Unix用C重写,
于是C在随后年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-最早被安装在Bell Lab里供大家日常使用。很
快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX
代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清
净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只
好继续郁闷。谁知道这一郁闷,就郁闷了年,直到Ken爷爷道出个中缘由。原来,代码
里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器
编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译
器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系
统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开
发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David
Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的
是,罗伯伯还是年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设
计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初学者
想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写
出了Unix下第一个基于位图的窗口系统,并且是著名的blit终端的作者。当然了,罗伯
伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多
少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯
含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越
来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的
革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不
遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道
了。具有超强容错和负载平衡能力的分布式文件系统GFS
(现在能够用,台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统
也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的
说),更不用说处理海量并行计算的各式google服务了。Rob在System Software
Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到
他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。
想必Rob Pike在google很幸福。愿他做出更棒的系统。
Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.
Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前
身是B,而B是Ken Thompson一手做出来的)。两人年分享图灵奖,是有史以来少数几
个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,
所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛
不衰近年,至今生机勃勃,DMR此生可以无憾的说。
D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有
成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和
逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成
形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D
不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。
Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来
人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接
受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来
领导自己的团队在年和分别推出了Plan9和Inferno操作系统,又用多少人知道
呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond
在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁
知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次
采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当
然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意
识奠定了C广为流传的基础。
最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜
欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就
是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开
发部的头,整日忙于开支票。他俩合作年,屡屡创造历史。这段令人神往的佳话,也
就长留你我心中乐。
P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。
据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写
得最少;但说到编程,Ken爷爷才是当之无愧的老大。
Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短
路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。
其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,
无非是戴爷爷在年为了展示新计算机
ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最
短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒
太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙
着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专
业期刊都没有。戴爷爷于是推迟发表这个算法。直到年,他才把这个算法发表
在Numerische Mathematik的创刊号上,权为捧场。:-)
EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较
深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。
戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工
作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要
知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情
愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变
得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,
接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博
士论文,顺利戴上博士帽。
让戴爷爷真正成名立万的还是在X1上开发的Algo,最早的高级语言之一。戴爷爷没日
没夜地工作了8个月,就搞出了Algo,也因此获得了 年的图灵奖。因为Algo,
戴爷爷发表了一篇石破天惊的文章:Recursive
Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,
所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。
而且Algo还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员
都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科
学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。
说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是
专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴
爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系
统,并培养计算机科学家。几年后,THE Multiprogramming
System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统
没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小
组(年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就
喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作
来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷
从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。
EWD太牛,结果他的故事也太多。先到这里吧。起,他的故事就在美国发生了。
Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作
品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当
如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:
/iexploiter/posts/.aspx
Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看
看牛人的丰采。