3

我被要求爲一組Windows計算機編寫一個(非常)簡單的程序(XP我認爲) - 非常簡單,語言的選擇不是真正的問題。但是,我希望能夠在Windows計算機上直接運行二進制/腳本,而無需預先安裝任何解釋器或虛擬機。我正在Linux機器上開發,我不知道Windows支持「開箱即用」的語言。任何人都可以建議嗎?Windows支持開箱即用的語言

例如

  • Perl的將是巨大的,但我不相信Windows機器來用Perl預裝了?要求用戶安裝Perl來使用我的腳本是不可接受的。
  • 我相信Python有同樣的問題? (雖然也許我可以使用PyInstaller? - as in this question
  • 同樣Java?虛擬機是否預裝在大多數Windows發行版上? (我的理解得到了與Sun Microsystems爭執後刪除?)

我能想到的迄今唯一的選擇是

  • C/C++使用MinGW交叉編譯器。

雖然我很高興用C++編寫代碼,但我想首先檢查我的語言選項。

+0

也許不是你所接受的答案,但大多數(如果不是所有的話)Windows電腦都安裝了.net框架。 :)另外,如果程序非常簡單,你可以考慮批處理文件或可能是VB腳本? – Bazzz

回答

2

開箱即用支持的唯一腳本語言是批解釋器,vbscript和jscript。除此之外,你正在編譯語言。一個好的選擇可能是C#,但要確保你的目標是XP附帶的.net版本。

+0

好的,謝謝。我擔心這可能是這樣的......他們甚至沒有一個C庫嗎? - MinGW會不會工作? :( – Tom

+0

任何編譯語言都不錯 –

+0

@DavidHeffernan你確定所有的編譯語言嗎?例如,我見過的幾個C++變體需要特殊的運行時,例如J ++也是如此 –

1

編譯爲純本地程序集(沒有特殊的運行時依賴項)的任何語言都應該沒問題。例如:許多C變體(但不是全部),Microsoft Visual C++,Microsoft Visual Basic 6,OCaml,Haskell等等。要求.NET Framework(它也提供C#,VB.NET和F#)是合理的,並且JVM也是非常標準的(因此您可以獲得Java,Closure和Scala)。

+0

好的,我正在linux上編譯,所以大部分的微軟語言都沒有了。 - 如果大多數Windows機器都具有Java,那麼我可能會使用它。作爲與歐盟反壟斷糾紛的一部分,我認爲它已被刪除? – Tom

+0

所有的.NET語言都有單聲道端口(C#和VB.NET本身帶有Mono,F#有一個可以從他們的站點安裝的CTP),所以它們不會完全沒有。注意:Mono是.NET的一個真正的子集,任何在Mono上工作的東西都可以在.NET上工作,而並不總是相反。關於Java:大多數計算機具有Java內置(非EU或更舊的計算機)或by-install(它*常用,人們只需下載它)。 –

+0

MSVC++是否允許靜態鏈接?否則,您需要分發MSVCRT運行時DLL集。 –

1

我不認爲Java預裝在Windows上。

我幾年來沒有使用Windows,但是如果我正確地記得您可以使用VBScript或JScript開發腳本並部署它們而無需客戶端安裝任何東西。

+0

Afaik J#與Internet Explorer一起使用,最初意味着作爲一個向量來促進.NET的安裝。但是MS在足夠流行的時候可以罐裝它。 –

2

Delphi和拉撒路/ FreePascal的產生甚至不需要對MSVCRT

一些其他系統有比較新的版本的MSVCRT要求上可能出現的較老版本Windows的負擔本地應用程序。

然而,最近的拉撒路和Delphi版本停止支持視窗NT4和Win9x的,用win2000在一個灰色區域(不支持,但工作據我所知)

具有內部的Win32/64連接器使得它也是一個很好的選擇,從交叉編譯* nix到Windows。

+0

我得到的報告稱,Free Pascal/Lazarus(0.9.30.4/2.6.0)的發行版仍然與win98一起工作。 –