Okno Hello World

22

Utwórz okno, w którym wita się świat, i nic więcej. Nie możesz mieć żadnych przycisków OK ani Anuluj. To musi być zwykłe okno, które mówi cześć światu. Nie dbam o zawartość ramy okiennej ani o wygląd okna, ale w środku musi się przywitać tylko świat.

Przykład:
enter image description here

Najkrótszy kod wygrywa.

EDYCJA: Przykro mi, Johannes Kuhn okno musi tam zostać, może się nie zamknąć od razu. Nie pomyślałem o tym scenariuszu i jako taki nie uwzględniłem tego.

EDYCJA 2: Obecnie mamy 3 powiązane odpowiedzi (20 znaków). Wszelkie sugestie dotyczące zwycięzcy są mile widziane.

Quillion
źródło
1
Czy okno musi być wystarczająco duże, aby wyświetlać tekst, gdy się pojawi, czy może w porządku jest wymagać od użytkownika zmiany rozmiaru okna?
Iszi
Nie musi być wystarczająco duży, aby wyświetlać tekst, musi to być tylko okno, co oznacza, że ​​będzie to wyglądający na pojemnik obiekt, który ma tekst i nie zamyka się, dopóki nie zostanie o to poproszony.
Quillion
Mogę to zrobić tak krótko, jak Svena, ale przyciskami OK i Anuluj :(
Teresa e Junior
Wygląda na to, że odpowiedź Bash ma teraz 19 lat.
Iszi
2
Czy mogę zrobić rozwiązanie VB 6 z etykietą „Hello World”? 0 rozwiązanie kodu?
Cruncher

Odpowiedzi:

13

bash 20 19 znaków

Dzięki @manatwork za bezużyteczne miejsce po -p!

read -pHello\ World

W akcji:

echo 'read -pHello\ World' >/tmp/helloworld.sh
chmod +x /tmp/helloworld.sh

Niż dwukrotnie kliknij menedżer plików:

enter image description here

I zobaczyć:

enter image description here

Posiadanie jako domyślnej powłoki.

19 16

Ponieważ pytanie dotyczy tylko Witaj Świecie i Nic więcej , okno musi pozostać, ale nic innego jak wydrukować tekst tylko raz lub więcej, myślę, że ten wymóg również pasuje!

yes Hello\ World

Jest tylko 16 znaków.

echo >/tmp/helloworld.sh 'yes Hello\ World'

Przy tej samej procedurze daje to:

enter image description here

F. Hauri
źródło
1
Wydaje mi się GNOME.
Pierre Arlaud
2
Myślę, że część „wybierz uruchom w terminalu” powinna liczyć się co najmniej jako 1 bajt. Podobne do zasad dotyczących opcji przekazywanych tłumaczom podczas uruchamiania niektórych rozwiązań codegolf.
Bakuriu
1
@ Bakuriu W zależności od osobistych zastosowań możesz skonfigurować swojego menedżera okien, aby nie pytał i działał zawsze pod wybraną powłoką lub terminalem ... (Myślę, że jest domyślny pod MS-Window)
F. Hauri
2
@ Bakuriu lubię instalować HQ9+interpreter, dodając .hq9+jako pojemność MIME : działając HQ9+w oknach terminala . Dlatego wyzwanie może zostać zmniejszone do 1 bajtu. Ta odpowiedź była oparta na poprzednich odpowiedziach, przy użyciu wsadowej lub programu PowerShell i uruchamiania systemu operacyjnego, który domyślnie używa tego rodzaju sztuczki.
F. Hauri
3
@JohannesKuhn Oszalałeś! Temperatura zewnętrzna nie przekracza 2 ° C! Jest za zimno!!
F. Hauri,
23

Wiersz polecenia systemu Windows, 26

echo Hello World>.hta&.hta

enter image description here

Danko Durbić
źródło
To jest niesamowite. Punkty bonusowe za spawnowanie dwóch okien?
Gusdor
@Gusdor Co masz na myśli? Widzę tu tylko jedno okno odrodzenia.
Iszi
@Iszi Przyjąłem założenie, że plik wsadowy został uruchomiony z pulpitu, a nie wpisany. Ups!
Gusdor
@Gusdor Myślę, że dlatego nazwał to „Wiersz polecenia systemu Windows” zamiast „Pakiet”. W przeciwnym razie i tak straciłby odpowiedź Johannesa.
Iszi
1
@Iszi: Otwiera to nowe okno, więc nie ma znaczenia, czy polecenie jest powtarzane w innym ...
Ry-
15

R 23

plot(1,m="Hello World")

Otworzy się okno wydruku.

Sven Hohenstein
źródło
+1. Możesz jednak skrócić sub=się s=dzięki częściowemu dopasowaniu.
plannapus
@plannapus Dzięki, dobry pomysł! Zmodyfikowałem swój kod.
Sven Hohenstein
Sven, to nie drukuje „witaj świecie w środku i nic więcej” :) Brałem udział w podobnym wyzwaniu i musiało być zrobione inaczej, patrz codegolf.stackexchange.com/a/19807/2800
Tomas
1
@Tomas To wyzwanie jest inne. Z pytania: „ Nie dbam o zawartość ramy okna ”.
Sven Hohenstein
Cóż, ale nie chodzi tu o ramkę, ale także o etykietę osi tekstowej „indeks”, liczby itp.
Tomas
14

Dyalog APL (20)

⎕SM←'Hello World'1 1

Obrazek: Picture

marinus
źródło
1
Znaki specjalne!?! HAXXX!
AJMansfield
11

PowerShell, 23

'Hello World'>.hta;.hta

enter image description here

Danko Durbić
źródło
Miły! Pokonuje moje „prawdziwe” rozwiązanie i jest tylko 3 znaki dłuższe niż metoda skrótu. Można jednak argumentować, że nie jest to o wiele lepsze niż używanie Hello Worldsamego i nazywanie go HTML - ponieważ jest to prawie dokładnie to, co zrobiłeś. Właśnie użyłeś PowerShell do zbudowania i uruchomienia go.
Iszi
11

HTML (trochę), 17

data:,Hello World

Wklej to do paska adresu przeglądarki.

JavaScript, 25

open("data:,Hello World")

Używa to przeglądarki window.openi danych użytkownika.

Typ MIME i zestaw znaków identyfikatorów URI danych są domyślnie ustawiane w text/plain;charset=US-ASCIIprzypadku pominięcia.

JavaScript, 19

eval($("s").text())

Ta działa tylko wtedy, gdy ta odpowiedź jest najwyższą (lub zaakceptowaną) odpowiedzią i jest uruchamiana na TEJ stronie przepełnienia stosu (za pośrednictwem konsoli JavaScript). :-)

open („data:, Hello World”);

David Murdoch
źródło
Zabawna sztuczka. Ale niestety zależy to od kolejności postów, które mogą się różnić.
manatwork
1
Cóż, będzie działać tak długo, jak długo będzie to akceptowana odpowiedź (a pytanie nie zawiera „<s>”)
David Murdoch
Lol. Muszę głosować za twój optymizm.
manatwork
Czy możesz wyjaśnić, jak to będzie działać? Używam Chrome i próbowałem uruchomić go na konsoli, ale rozumiem Unexpected token ILLEGAL. Czy musisz być najlepszą odpowiedzią, aby to zadziałało?
Quillion
Tak, musi to być najlepsza odpowiedź, aby zadziałało. LUB Mógłbym po prostu edytować samo pytanie, aby zawierało wymagany <s>open("data:,Hello World");</s>kod HTML, ale może to trochę za dużo oszukiwać. :-p
David Murdoch
9

Matlab, 30 27 20

title('Hello World')

Czy dozwolone są okna działki? Nie ma żadnych przycisków w środku.

Sven Hohenstein
źródło
Tak, okno fabuły jest w porządku :) tak długo, jak to jest okno, nie obchodzi mnie to
Quillion
cyfra („nazwa”, „Hello World”) jest krótsza
mag
@magu_ Dobry pomysł. Ale przypuszczam, że jest to sprzeczne z zasadą „okno, które mówi witaj świecie w środku ”.
Sven Hohenstein
1
@SvenHohenstein Hm, może. Mówiąc przynajmniej coś pożytecznego: nie potrzebujesz (1) koniecznie. Zmniejszanie kodu o 3 znaki.
magu_
1
Tak naprawdę nie potrzebujeszfigure;
Torbjørn T.
9

Java, 117 znaków

import java.awt.*;class C{public static void main(String[]a){new Frame(){{add(new Label("Hello World"));show();}};}}

Z formatowaniem:

import java.awt.*;

class C {
    public static void main(String[] a) {
        new Frame() {
            {
                add(new Label("Hello World"));
                show();
            }
        };
    }
}

Możemy uniknąć konieczności jawnego deklarowania zmiennej za pomocą bloków inicjujących w anonimowej podklasie Frame. Co ciekawe, używając awt, jest tyle samo znaków, import java.awt.*;ile jest po prostu w pełni zakwalifikować obie nazwy klas .

Swilliams
źródło
8
Możesz zadzwonić args, jak chcesz; ajest wystarczający.
daniero
@daniero dzięki za sugestię, głupio mnie przegapić że :)
swilliams
1
s/class/enum/
Thomas Eding,
jak @ThomasEding wskazówki zastępujące klasę przez enum golą jeden bajt
masterX244
@ masterX244 To nie będzie składniowo poprawne, chyba że średnik jest dodawany przed public static...zakończyć listę stałych enum ... zobacz stackoverflow.com/questions/7318011/... . W obu przypadkach otrzymujesz taką samą liczbę znaków.
swilliams,
7

Mathematica 29 27 25

Z 1 bajtem zapisanym dzięki CatsAreFluffy.

DialogInput@"hello world"

hello world

DavidC
źródło
CreateDialogjest krótszy.
alephalpha
Dzięki. Myślałem, że CreateDialog wstawi przycisk OK.
DavidC
DialogInputjest o 1 bajt krótszy
CalculatorFeline
Tak, dziękuję, a nawiasy klamrowe są również niepotrzebne.
DavidC
5

Shell, 32

xmessage -buttons '' Hello World
Hasturkun
źródło
1
Jest 1 znak krótszy sposób: xterm -e 'read -p Hello\ World'.
manatwork
Mój byłby o wiele krótszy, gdybym nie musiał -buttons '':(
Hasturkun,
@Hasturkun Zgadzam się, ale musiałem się pozbyć wymogu dotyczącego przycisków, ponieważ javascript wygrałby z ich alertem lub jakimś innym skrótem i czułem, że byłoby to zbyt niesprawiedliwe i zbyt jasne, szczególnie w przypadku niektórych innych języków.
Quillion
@Hasturkun, bez ograniczeń bez przycisku twoje xmessage Hello Worldrozwiązanie liczy tylko 20 znaków, ale wtedy Windows pobiłby cmdcię msg * Hello Worldzaledwie 17 znakami. Bądźcie więc wdzięczni za to ograniczenie. :)
manatwork
5

Rubin z butami , 28

Shoes.app{para'Hello World'}

Wynik:

screenshot

Klamka
źródło
5

Python 2/3, 54 znaki

Wielkie litery w tkinter, aby działał w Pythonie 2.

__import__("tkinter").Label(text="Hello World").pack()
Ramchandra Apte
źródło
gdy próbuję że otrzymujemy: AttributeError: Label instance has no attribute 'show'. Jednak __import__("Tkinter").Label(text="Hello World").pack()daje mi pożądany efekt.
plannapus
@plannapus Właściwie skopiowałem poprzednią wersję z tym błędem, a nie poprawną. Dzięki.
Ramchandra Apte
4

Pakiet Windows, 23

@pause|echo Hello World
  • Otwiera czarne okno, które pokazuje Hello World, nic więcej.
  • Teraz okna pozostają otwarte
  • There are no buttons in the window.
Johannes Kuhn
źródło
2
Requirement is: create a window not force window manager to create a window
F. Hauri
4
@F.Hauri Ok, I'll look how to write a window manager. Until someone post that, consider all posts as violation of your requirement.
Johannes Kuhn
1
As the op states, it doesn't matter how the window looks. If it is a plot window or a shell window, who cares?
Johannes Kuhn
5
I absolutely agree :) now this is absolutely acceptable because it is a window and it does say hello world :) well done I love it
Quillion
1
@JohannesKuhn PowerShell can still beat it. Edit coming up.
Iszi
4

Rebol 2, 29

view layout[txt{Hello World}]

enter image description here

Izkata
źródło
4

ExtJS (Javascript) 44

new Ext.Window({html:'Hello world',}).show()

F. Hauri
źródło
3

Tcl/Tk, 34

pack [label .l -text Hello\ World]
Johannes Kuhn
źródło
3

AutoHotkey, 26

GUI,Add,Text,,Hello World!
Broseph
źródło
3

AutoIt v3, 32

ToolTip("Hello World")
Sleep(9^9)
Chris
źródło
Wouldn't MsgBox(0,"","Hello World") be shorter? It's 26 characters.
Mr. Llama
The requirements are to have no Ok or Cancel buttons within the window. The code you suggest has an OK button. :(
Chris
Ah balls, I missed that requirement.
Mr. Llama
3

HTML, 11

Hello World

Screenshot:

HTML Hello World

I guess this shouldn't count, but I think it would be interesting to see such an answer here.

Alvin Wong
źródło
3
I agree it shouldn't count. The same can be accomplished by loading a simple TXT file in the browser.
Iszi
Your count is off, that's 20 characters.
jmoreno
2
@Iszi without HTML tags, this is really just getting rendered as a plain text file. I would argue that you can't even call it an html submission without <html> </html>
Cruncher
@Cruncher Google Chrome actually adds an HTML skeleton including a <pre> which contains the file's contents (you can use Chrome dev tools for verifying this behavior).
ComFreek
1
@Cruncher Well, maybe if you're using IE6, but in any modern browser, you can omit the <html> tags, as well as the <body> and <head> tags, and the browser will automatically fill out the "skeleton". For example, try <div style="background:#ff0">Hello</div> in a modern browser, and it will universally render "hello" with a yellow background.
Braden Best
3

PowerShell: 162 124 114 or 20


The Long Way Around

($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()

Since PowerShell really doesn't have any built-in GUI functionality, I'm having a hard time coming up with anything shorter than this which I feel really fits the original spirit of the challenge. (Or, at least, fits within the parameters several of us have assumed were implied.)

enter image description here

Changes from original:

  • Removed window size definition. Apparently, it's optional and the default is plenty large enough.
  • Incorporated changes provided by SpellingD in comments. Note: The window which spawns will hang - you'll need to kill PowerShell via Task Manager.

Alternative 20-Character Approach

Removing some assumed-implied requirements, we can also meet this challenge a-la Johannes Kuhn with this:

'Hello World';for(){}

Save as a .ps1 file. Make sure the system's ExecutionPolicy allows unsigned scripts. Right-click and select "Run with PowerShell".

enter image description here

Iszi
źródło
Show instead of ShowDialog should do it, right?
It'sNotALie.
Show() does work, but doesn't let you close the window. Which isn't a requirement!
SpellingD
My edit to golf this was rejected, and my code isn't sufficiently different enough to warrant making a new answer, so here's how you could golf this to 114, I guess. ($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()
SpellingD
@SpellingD Thanks. I've incorporated your changes to the "true" solution, and also added a "cheap method" which currently beats all contenders. (Except, arguably, HQ9+ of course.)
Iszi
3

Factor, 36 code + 23 imports = 59

USING: ui ui.gadgets ; "Hello World" <label> "" open-window

When this is run inside the listener, the imports will be brought in automatically. You only need them to deploy a standalone executable.

Jon Purdy
źródło
2

Groovy, 68 27

Using console.

print"Hello World";for(;;);

Using Frame.

new java.awt.Frame(){{add new java.awt.Label("Hello World")}}.show()

Inspired by @swilliams Java answer.

FGreg
źródło
2

Processing, 37 chars:

void draw(){text("Hello World",0,9);}

Various things used to reduce strokes:

  • Sketch window is spawned by default; no need to manually create it
  • Using draw is shorter than setup (although the text is then redrawn each frame)
  • Uses default size, background, fill, font, and font size
  • You don't actually need all 10 pixels height for the text
AJMansfield
źródło
2

Bash (36 chars)

xmessage -buttons "" "Hello World!"

Looks like crap, but works as requested.

enter image description here

klingt.net
źródło
The rule “inside it must say hello world only” was explicitly added to avoid so simple solutions.
manatwork
ok, fixed this.
klingt.net
Now it's correct, but there is another problem: it became duplicate of Hasturkun's answer.
manatwork
1
Damn, at least i've a screenshot :)
klingt.net
2

Ghostscript 50

0 0 moveto/Courier 20 selectfont(Hello World)show

Could make it 49 by using a 9-point font, but it's a little hard to read.

Can make a smaller window by invoking gs with a geometry argument for an additional 8 chars.

gs -g200x30 hello.ps
luser droog
źródło
2

C#, 72

class P{static int Main(){System.Console.Write("hello world");for(;;);}}

Based on the answer by @Noctis. I would have suggested it as a comment if I had enough Rep.

Johnbot
źródło
2

Delphi - 73 62

uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.

Edit after @manatwork and @Gareth 's suggestions. Which actually brings me to a character count of 62.

R-D
źródło
How you get that character count? The code you posted has 77 characters and the minimum to which it can me reduced is 64: uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.
manatwork
1
You need to count newlines as part of your character count. That's why many answers on this site are all on one line.
Gareth
Ah, I didn't know that. I'll edit my answer.
R-D
2

Shell script: 56 character

convert -size 99x9 xc: -draw 'text 0,10 Hello\ World' x:

Sample output:

Hello World

manatwork
źródło
2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Arduino, 27

Serial.print("Hello World")

Place this in void setup()

Game Maker Language, 40

show_message_ext("Hello World","","","")

I'm pretty sure this is the shortest way without adding any extension packages.

Timtech
źródło
If you would accept an OK button, show_message("Hello World") is 27 characters.
Timtech
Extremely necroing this one, but I have 2 (slight) remarks about your Ti84-Basic one. 1: couldn't you drop the final "? 2: Should you count it in bytes, we have a clear winner here ;)
ɐɔıʇǝɥʇuʎs
@Synthetica Yeah. Forgot that :)
Timtech
Your TI-BASIC answer does not open a window, and it outputs capital rather than lowercase letters.
lirtosiast