Hello world/Standard error: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added 11l)
 
(41 intermediate revisions by 28 users not shown)
Line 6: Line 6:
{{omit from|Brainf***}}
{{omit from|Brainf***}}
{{omit from|dc|Always prints to standard output.}}
{{omit from|dc|Always prints to standard output.}}
{{omit from|EasyLang|EasyLang has an error variable, but it cannot be set manually. And it always prints to standard output.}}
{{omit from|GUISS|Cannot customize error messages}}
{{omit from|GUISS|Cannot customize error messages}}
{{omit from|Integer BASIC}}
{{omit from|Integer BASIC}}
Line 31: Line 32:
{{trans|Python}}
{{trans|Python}}


<lang 11l>:stderr.write("Goodbye, World!\n")</lang>
<syntaxhighlight lang="11l">:stderr.write("Goodbye, World!\n")</syntaxhighlight>


=={{header|4DOS Batch}}==
=={{header|4DOS Batch}}==
<lang 4dos>echoerr Goodbye, World!</lang>
<syntaxhighlight lang="4dos">echoerr Goodbye, World!</syntaxhighlight>


=={{header|AArch64 Assembly}}==
=={{header|AArch64 Assembly}}==
<lang ARM_Assembly>.equ STDERR, 2
<syntaxhighlight lang="arm_assembly">.equ STDERR, 2
.equ SVC_WRITE, 64
.equ SVC_WRITE, 64
.equ SVC_EXIT, 93
.equ SVC_EXIT, 93
Line 57: Line 58:
svc #0 // exit(0);
svc #0 // exit(0);


msg: .ascii "Goodbye World!\n"</lang>
msg: .ascii "Goodbye World!\n"</syntaxhighlight>


=={{header|Ada}}==
=={{header|Ada}}==
<lang ada>with Ada.Text_IO; use Ada.Text_IO;
<syntaxhighlight lang="ada">with Ada.Text_IO; use Ada.Text_IO;


procedure Goodbye_World is
procedure Goodbye_World is
begin
begin
Put_Line (Standard_Error, "Goodbye, World!");
Put_Line (Standard_Error, "Goodbye, World!");
end Goodbye_World;</lang>
end Goodbye_World;</syntaxhighlight>


=={{header|Agena}}==
=={{header|Agena}}==
<lang agena>io.write( io.stderr, "Goodbye, World!\n" )</lang>
<syntaxhighlight lang="agena">io.write( io.stderr, "Goodbye, World!\n" )</syntaxhighlight>


=={{header|Aime}}==
=={{header|Aime}}==
<lang aime>v_text("Goodbye, World!\n");</lang>
<syntaxhighlight lang="aime">v_text("Goodbye, World!\n");</syntaxhighlight>


=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
Line 82: Line 83:


{{works with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d] - note that printf and putf were not ported into ELLA's libraries.}}
{{works with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d] - note that printf and putf were not ported into ELLA's libraries.}}
<lang algol68>main:(
<syntaxhighlight lang="algol68">main:(
put(stand error, ("Goodbye, World!", new line))
put(stand error, ("Goodbye, World!", new line))
)</lang>
)</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 91: Line 92:


=={{header|Argile}}==
=={{header|Argile}}==
<lang Argile>use std
<syntaxhighlight lang="argile">use std
eprint "Goodbye, World!"</lang>
eprint "Goodbye, World!"</syntaxhighlight>
or
or
<lang Argile>use std
<syntaxhighlight lang="argile">use std
eprintf "Goodbye, World!\n"</lang>
eprintf "Goodbye, World!\n"</syntaxhighlight>
or
or
<lang Argile>use std
<syntaxhighlight lang="argile">use std
fprintf stderr "Goodbye, World!\n"</lang>
fprintf stderr "Goodbye, World!\n"</syntaxhighlight>

=={{header|ARM Assembly}}==
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
{{works with|as|Raspberry Pi}}


<syntaxhighlight lang="arm assembly">
<lang ARM Assembly>
/* ARM assembly Raspberry PI */
/* ARM assembly Raspberry PI */
/* program hellowordLP.s */
/* program hellowordLP.s */
Line 123: Line 125:
iAdrMessage: .int szMessage
iAdrMessage: .int szMessage


</syntaxhighlight>
</lang>


=={{header|Arturo}}==
=={{header|Arturo}}==
<lang arturo>panic "Goodbye, World!"</lang>
<syntaxhighlight lang="arturo">panic "Goodbye, World!"</syntaxhighlight>


=={{header|ATS}}==
=={{header|ATS}}==
<lang ATS>implement main0 () = fprint (stderr_ref, "Goodbye, World!\n")</lang>
<syntaxhighlight lang="ats">implement main0 () = fprint (stderr_ref, "Goodbye, World!\n")</syntaxhighlight>


=={{header|AutoHotkey}}==
=={{header|AutoHotkey}}==
requires [http://github.com/tinku99/ahkdll/tree/master AutoHotkey_N]
requires [http://github.com/tinku99/ahkdll/tree/master AutoHotkey_N]
implementation.
implementation.
<lang autohotkey>; c:\> autohotkey.exe stderr.ahk 2> error.txt
<syntaxhighlight lang="autohotkey">; c:\> autohotkey.exe stderr.ahk 2> error.txt
FileAppend, Goodbye`, World!, stderr ; requires AutoHotkey_N</lang>
FileAppend, Goodbye`, World!, stderr ; requires AutoHotkey_N</syntaxhighlight>


Or with the current AutoHotkey_L:
Or with the current AutoHotkey_L:
{{works with|AutoHotkey_L}}
{{works with|AutoHotkey_L}}
(documentation on this behavior: http://www.autohotkey.net/~Lexikos/AutoHotkey_L/docs/commands/FileAppend.htm)
(documentation on this behavior: http://www.autohotkey.net/~Lexikos/AutoHotkey_L/docs/commands/FileAppend.htm)
<lang AutoHotkey>FileAppend, Goodbye`, World!, *</lang>
<syntaxhighlight lang="autohotkey">FileAppend, Goodbye`, World!, *</syntaxhighlight>


=={{header|AutoIt}}==
=={{header|AutoIt}}==
<lang AutoIt>ConsoleWriteError("Goodbye, World!" & @CRLF)</lang>
<syntaxhighlight lang="autoit">ConsoleWriteError("Goodbye, World!" & @CRLF)</syntaxhighlight>

=={{header|Avail}}==
<syntaxhighlight lang="avail">Error: "Goodbye, World!";</syntaxhighlight>


=={{header|AWK}}==
=={{header|AWK}}==
Line 149: Line 154:
pipe it through a shell command:
pipe it through a shell command:


<lang awk>BEGIN {
<syntaxhighlight lang="awk">BEGIN {
print "Goodbye, World!"| "cat 1>&2"
print "Goodbye, World!"| "cat 1>&2"
}</lang>
}</syntaxhighlight>


Or write to /dev/stderr:
Or write to /dev/stderr:
Line 158: Line 163:
{{works with|mawk}}
{{works with|mawk}}
{{works with|nawk}}
{{works with|nawk}}
<lang awk>BEGIN {
<syntaxhighlight lang="awk">BEGIN {
print "Goodbye, World!" > "/dev/stderr"
print "Goodbye, World!" > "/dev/stderr"
}</lang>
}</syntaxhighlight>


With ''gawk'', ''mawk'' and ''nawk'': a special feature
With ''gawk'', ''mawk'' and ''nawk'': a special feature
Line 174: Line 179:


=={{header|BASIC}}==
=={{header|BASIC}}==
==={{header|Applesoft BASIC}}===

<syntaxhighlight lang="basic">REM FILE-BASED OUTPUT REDIRECTION
0 D$ = CHR$ (4):F$ = "DEV/STDERR": PRINT D$"OPEN"F$: PRINT D$"CLOSE"F$: PRINT D$"APPEND"F$: PRINT D$"WRITE"F$
1 PRINT "GOODBYE, WORLD!"
2 PRINT D$"CLOSE"F$</syntaxhighlight><syntaxhighlight lang="basic">REM OUTPUT ROUTINE REDIRECTION
3 FOR I = 768 TO 802: READ B: POKE I,B: NEXT : POKE 54,0: POKE 55,3: CALL 1002: DATA 72,173,34,3,208,8,169,191,141,34,3,32,240,253,104,201,141,208,12,169,0,141,34,3,169,135,32,240,253,169,141,76,240,253,0
4 O$ = CHR$ (111):D$ = CHR$ (100): PRINT "G" + O$ + O$ + D$ + CHR$ (98) + CHR$ (121) + CHR$ (101) + ", W" + O$ + CHR$ (114) + CHR$ (108) + D$ + "!"
5 POKE 54,240: POKE 55,253: CALL 1002</syntaxhighlight>
==={{header|BaCon}}===
==={{header|BaCon}}===
<lang freebasic>EPRINT "Goodbye, World!"</lang>
<syntaxhighlight lang="freebasic">EPRINT "Goodbye, World!"</syntaxhighlight>


==={{header|ZX Spectrum Basic}}===
==={{header|BASIC256}}===
<syntaxhighlight lang="basic256">onerror errortrap
throwerror 99
end


errortrap:
print "Goodbye World!"
return</syntaxhighlight>

==={{header|Chipmunk Basic}}===
{{works with|Chipmunk Basic|3.6.4}}
<syntaxhighlight lang="qbasic">10 cls
20 on error goto 50
30 error 99 : we force an error
40 end
50 rem ManejoErrores
60 print "Goodbye World!"
70 cont</syntaxhighlight>

==={{header|QBasic}}===
<syntaxhighlight lang="basic">ON ERROR GOTO ManejoErrores
ERROR 99
END

ManejoErrores:
PRINT "Googbye World!"
RESUME</syntaxhighlight>

==={{header|ZX Spectrum Basic}}===
On the ZX Spectrum, standard error is on stream 1:
On the ZX Spectrum, standard error is on stream 1:


<syntaxhighlight lang="zxbasic">10 PRINT #1;"Goodbye, World!"
<lang zxbasic>
20 PAUSE 50: REM allow time for the user to see the error message</syntaxhighlight>
10 PRINT #1;"Goodbye, World!"
20 PAUSE 50: REM allow time for the user to see the error message
</lang>


=={{header|Batch File}}==
=={{header|Batch File}}==
<lang dos>1>&2 echo Goodbye, World!</lang>
<syntaxhighlight lang="dos">1>&2 echo Goodbye, World!</syntaxhighlight>
The redirection operator <code>1>&2</code> causes all output on stream 1 (standard out) to be redirected to stream 2 (standard error).
The redirection operator <code>1>&2</code> causes all output on stream 1 (standard out) to be redirected to stream 2 (standard error).
The redirection can be moved to the end of the line, too.
The redirection can be moved to the end of the line, too.
Line 195: Line 232:
{{works with|BBC BASIC for Windows}}
{{works with|BBC BASIC for Windows}}
The program must be compiled as a console application for this to work.
The program must be compiled as a console application for this to work.
<lang bbcbasic> STD_ERROR_HANDLE = -12
<syntaxhighlight lang="bbcbasic"> STD_ERROR_HANDLE = -12
SYS "GetStdHandle", STD_ERROR_HANDLE TO @hfile%(1)
SYS "GetStdHandle", STD_ERROR_HANDLE TO @hfile%(1)
PRINT #13, "Goodbye, World!"
PRINT #13, "Goodbye, World!"
QUIT</lang>
QUIT</syntaxhighlight>

=={{header|Blade}}==
<syntaxhighlight lang="blade">import io
io.stderr.write('Goodbye, World!')</syntaxhighlight>


=={{header|C}}==
=={{header|C}}==
Unlike puts(), fputs() does not append a terminal newline.
Unlike puts(), fputs() does not append a terminal newline.
<lang c>#include <stdio.h>
<syntaxhighlight lang="c">#include <stdio.h>


int main()
int main()
Line 210: Line 251:


return 0;
return 0;
}</lang>
}</syntaxhighlight>


=={{header|C sharp|C#}}==
=={{header|C sharp|C#}}==
<lang csharp>static class StdErr
<syntaxhighlight lang="csharp">static class StdErr
{
{
static void Main(string[] args)
static void Main(string[] args)
Line 219: Line 260:
Console.Error.WriteLine("Goodbye, World!");
Console.Error.WriteLine("Goodbye, World!");
}
}
}</lang>
}</syntaxhighlight>


=={{header|C++}}==
=={{header|C++}}==
<lang cpp>#include <iostream>
<syntaxhighlight lang="cpp">#include <iostream>


int main() {
int main() {
std::cerr << "Goodbye, World!\n";
std::cerr << "Goodbye, World!\n";
}</lang>
}</syntaxhighlight>


=={{header|Clojure}}==
=={{header|Clojure}}==
<lang lisp>(binding [*out* *err*]
<syntaxhighlight lang="lisp">(binding [*out* *err*]
(println "Goodbye, world!"))</lang>
(println "Goodbye, world!"))</syntaxhighlight>

=={{header|CLU}}==
<syntaxhighlight lang="clu">start_up = proc ()
stream$putl(stream$error_output(), "Goodbye, World!")
end start_up</syntaxhighlight>


=={{header|CMake}}==
=={{header|CMake}}==
Most messages go to standard error.
Most messages go to standard error.


<lang cmake>message("Goodbye, World!")</lang>
<syntaxhighlight lang="cmake">message("Goodbye, World!")</syntaxhighlight>


The message cannot be a keyword; <code>message("STATUS")</code> never prints "STATUS", but <code>message("" "STATUS")</code> does work.
The message cannot be a keyword; <code>message("STATUS")</code> never prints "STATUS", but <code>message("" "STATUS")</code> does work.
Line 243: Line 289:
{{works with|OpenCOBOL}}
{{works with|OpenCOBOL}}


<lang cobol> program-id. ehello.
<syntaxhighlight lang="cobol"> program-id. ehello.
procedure division.
procedure division.
display "Goodbye, world!" upon syserr.
display "Goodbye, world!" upon syserr.
stop run.</lang>
stop run.</syntaxhighlight>


=={{header|CoffeeScript}}==
=={{header|CoffeeScript}}==
{{trans|JavaScript}}
{{trans|JavaScript}}
{{works with|Node.js}}
{{works with|Node.js}}
<lang coffeescript>console.warn "Goodbye, World!"</lang>
<syntaxhighlight lang="coffeescript">console.warn "Goodbye, World!"</syntaxhighlight>


=={{header|Common Lisp}}==
=={{header|Common Lisp}}==
<lang lisp>(format *error-output* "Goodbye, world!~%")</lang>
<syntaxhighlight lang="lisp">(format *error-output* "Goodbye, world!~%")</syntaxhighlight>


=={{header|D}}==
=={{header|D}}==
<lang d>import std.stdio;
<syntaxhighlight lang="d">import std.stdio;


void main () {
void main () {
stderr.writeln("Goodbye, World!");
stderr.writeln("Goodbye, World!");
}</lang>
}</syntaxhighlight>
===Alternative Version===
===Alternative Version===
{{libheader|tango}}
{{libheader|tango}}


<lang d>import tango.io.Stdout;
<syntaxhighlight lang="d">import tango.io.Stdout;


void main () {
void main () {
Stderr("Goodbye, World!").newline;
Stderr("Goodbye, World!").newline;
}</lang>
}</syntaxhighlight>


=={{header|Déjà Vu}}==
=={{header|Dart}}==
<syntaxhighlight lang="dart">import 'dart:io';
<lang dejavu>!write-fragment!stderr !encode!utf-8 "Goodbye, World!\n"</lang>

void main() {
stderr.writeln('Goodbye, World!');
}</syntaxhighlight>


=={{header|Delphi}}==
=={{header|Delphi}}==
<lang Delphi>program Project1;
<syntaxhighlight lang="delphi">program Project1;


{$APPTYPE CONSOLE}
{$APPTYPE CONSOLE}
Line 281: Line 331:
begin
begin
WriteLn(ErrOutput, 'Goodbye, World!');
WriteLn(ErrOutput, 'Goodbye, World!');
end.</lang>
end.</syntaxhighlight>

=={{header|dt}}==
<syntaxhighlight lang="dt">"Goodbye, World!" epl</syntaxhighlight>


=={{header|Dylan.NET}}==
=={{header|Dylan.NET}}==
Line 292: Line 345:
{{works with|.NET|4.5}}
{{works with|.NET|4.5}}
One Line version:
One Line version:
<lang Dylan.NET>Console::get_Error()::WriteLine("Goodbye World!")</lang>
<syntaxhighlight lang="dylan.net">Console::get_Error()::WriteLine("Goodbye World!")</syntaxhighlight>
Goodbye World Program:
Goodbye World Program:
<syntaxhighlight lang="dylan.net">
<lang Dylan.NET>
//compile using the new dylan.NET v, 11.5.1.2 or later
//compile using the new dylan.NET v, 11.5.1.2 or later
//use mono to run the compiler
//use mono to run the compiler
Line 311: Line 364:


end class
end class
</syntaxhighlight>
</lang>

=={{header|Déjà Vu}}==
<syntaxhighlight lang="dejavu">!write-fragment!stderr !encode!utf-8 "Goodbye, World!\n"</syntaxhighlight>


=={{header|E}}==
=={{header|E}}==


<lang e>stderr.println("Goodbye, World!")</lang>
<syntaxhighlight lang="e">stderr.println("Goodbye, World!")</syntaxhighlight>


=={{header|Elixir}}==
=={{header|Elixir}}==
<lang elixir>IO.puts :stderr, "Goodbye, World!"</lang>
<syntaxhighlight lang="elixir">IO.puts :stderr, "Goodbye, World!"</syntaxhighlight>


=={{header|Emacs Lisp}}==
=={{header|Emacs Lisp}}==

<lang Emacs Lisp>
In batch mode, <code>message</code> actually prints to standard error:
(error "Goodbye, World!")

</lang>
<syntaxhighlight lang="lisp">(message "Goodbye, World!")</syntaxhighlight>
<b>Output:</b>

<pre>
For greater control, <code>princ</code> can be used with a special printing function:
Goodbye, World!

</pre>
<syntaxhighlight lang="lisp">(princ "Goodbye, World!\n" 'external-debugging-output)</syntaxhighlight>

=={{header|EMal}}==
<syntaxhighlight lang="emal">logLine("Goodbye, World!")</syntaxhighlight>
<syntaxhighlight lang="emal">log("Goodbye, World!")</syntaxhighlight>


=={{header|Erlang}}==
=={{header|Erlang}}==
<lang erlang>io:put_chars(standard_error, "Goodbye, World!\n").</lang>
<syntaxhighlight lang="erlang">io:put_chars(standard_error, "Goodbye, World!\n").</syntaxhighlight>


=={{header|Euphoria}}==
=={{header|Euphoria}}==
<lang Euphoria>puts(2,"Goodbye, world!\n") -- 2 means output to 'standard error'</lang>
<syntaxhighlight lang="euphoria">puts(2,"Goodbye, world!\n") -- 2 means output to 'standard error'</syntaxhighlight>


=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==
<lang fsharp>eprintfn "%s" "Goodbye, World!"</lang>
<syntaxhighlight lang="fsharp">eprintfn "%s" "Goodbye, World!"</syntaxhighlight>
or you can use the .Net classes
or you can use the .Net classes
<lang fsharp>System.Console.Error.WriteLine("Goodbye, World!");</lang>
<syntaxhighlight lang="fsharp">System.Console.Error.WriteLine("Goodbye, World!");</syntaxhighlight>


=={{header|Factor}}==
=={{header|Factor}}==
Start Factor in a terminal for this:
Start Factor in a terminal for this:
<lang factor>error-stream get [ "Goodbye, World! bbl, crashing" print flush ] with-output-stream*</lang>
<syntaxhighlight lang="factor">error-stream get [ "Goodbye, World! bbl, crashing" print flush ] with-output-stream*</syntaxhighlight>


=={{header|Fantom}}==
=={{header|Fantom}}==


<lang fantom>
<syntaxhighlight lang="fantom">
class Main
class Main
{
{
Line 354: Line 415:
}
}
}
}
</syntaxhighlight>
</lang>


=={{header|Forth}}==
=={{header|Forth}}==
{{works with|GNU Forth}}
{{works with|GNU Forth}}
<lang forth>outfile-id
<syntaxhighlight lang="forth">outfile-id
stderr to outfile-id
stderr to outfile-id
." Goodbye, World!" cr
." Goodbye, World!" cr
to outfile-id</lang>
to outfile-id</syntaxhighlight>


=={{header|Fortran}}==
=={{header|Fortran}}==
Line 370: Line 431:
which defines the parameter ERROR_UNIT.
which defines the parameter ERROR_UNIT.


<lang fortran>program StdErr
<syntaxhighlight lang="fortran">program StdErr
! Fortran 2003
! Fortran 2003
use iso_fortran_env
use iso_fortran_env
Line 378: Line 439:
write (ERROR_UNIT, *) "Goodbye, World!"
write (ERROR_UNIT, *) "Goodbye, World!"
end program StdErr</lang>
end program StdErr</syntaxhighlight>


=={{header|FreeBASIC}}==
=={{header|FreeBASIC}}==
<lang freebasic>' FB 1.05.0 Win64
<syntaxhighlight lang="freebasic">' FB 1.05.0 Win64


Open Err As #1
Open Err As #1
Print #1, "Goodbye World!"
Print #1, "Goodbye World!"
Close #1
Close #1
Sleep</lang>
Sleep</syntaxhighlight>


=={{header|Frink}}==
=={{header|Frink}}==
<lang frink>
<syntaxhighlight lang="frink">
staticJava["java.lang.System","err"].println["Goodbye, World!"]
staticJava["java.lang.System","err"].println["Goodbye, World!"]
</syntaxhighlight>
</lang>


=={{header|Genie}}==
=={{header|Genie}}==
<lang genie>[indent=4]
<syntaxhighlight lang="genie">[indent=4]
/*
/*
Hello, to Standard error, in Genie
Hello, to Standard error, in Genie
Line 401: Line 462:


init
init
stderr.printf("%s\n", "Goodbye, World!")</lang>
stderr.printf("%s\n", "Goodbye, World!")</syntaxhighlight>


{{out}}
{{out}}
Line 410: Line 471:
=={{header|Go}}==
=={{header|Go}}==
Built in println now goes to stderr.
Built in println now goes to stderr.
<lang go>package main
<syntaxhighlight lang="go">package main
func main() { println("Goodbye, World!") }</lang>
func main() { println("Goodbye, World!") }</syntaxhighlight>
but the builtin print() and println() functions are not guaranteed to stay in the language. So you should probably use
but the builtin print() and println() functions are not guaranteed to stay in the language. So you should probably use
<lang go>package main
<syntaxhighlight lang="go">package main
import ("fmt"; "os")
import ("fmt"; "os")
func main() { fmt.Fprintln(os.Stderr, "Goodbye, World!") }</lang>
func main() { fmt.Fprintln(os.Stderr, "Goodbye, World!") }</syntaxhighlight>


=={{header|Groovy}}==
=={{header|Groovy}}==
<lang groovy>System.err.println("Goodbye, World!")</lang>
<syntaxhighlight lang="groovy">System.err.println("Goodbye, World!")</syntaxhighlight>


=={{header|Haskell}}==
=={{header|Haskell}}==
<lang haskell>import System.IO
<syntaxhighlight lang="haskell">import System.IO
main = hPutStrLn stderr "Goodbye, World!"</lang>
main = hPutStrLn stderr "Goodbye, World!"</syntaxhighlight>


=={{header|Huginn}}==
=={{header|Huginn}}==
<lang huginn>#! /bin/sh
<syntaxhighlight lang="huginn">#! /bin/sh
exec huginn --no-argv -E "${0}" "${@}"
exec huginn --no-argv -E "${0}" "${@}"
#! huginn
#! huginn
Line 434: Line 495:
os.stderr().write( "Goodbye, World!\n" );
os.stderr().write( "Goodbye, World!\n" );
return ( 0 );
return ( 0 );
}</lang>
}</syntaxhighlight>


=={{header|Icon}} and {{header|Unicon}}==
=={{header|Icon}} and {{header|Unicon}}==
<lang icon>procedure main()
<syntaxhighlight lang="icon">procedure main()
write(&errout, "Goodbye World" )
write(&errout, "Goodbye World" )
end</lang>
end</syntaxhighlight>


=={{header|J}}==
=={{header|J}}==
<syntaxhighlight lang="j"> stderr
<lang j>stderr =: 1!:2&4
1!:2&5
stderr 'Goodbye, World!'</lang>

0 0 $ stderr 'Goodbye, World!'</syntaxhighlight>


=={{header|Java}}==
=={{header|Java}}==
<lang java>public class Err{
<syntaxhighlight lang="java">public class Err{
public static void main(String[] args){
public static void main(String[] args){
System.err.println("Goodbye, World!");
System.err.println("Goodbye, World!");
}
}
}</lang>
}</syntaxhighlight>


=={{header|JavaScript}}==
=={{header|JavaScript}}==
{{works with|JScript}} and only with <code>cscript.exe</code>
{{works with|JScript}} and only with <code>cscript.exe</code>
<lang javascript>WScript.StdErr.WriteLine("Goodbye, World!");</lang>
<syntaxhighlight lang="javascript">WScript.StdErr.WriteLine("Goodbye, World!");</syntaxhighlight>


{{works with|Node.js}}
{{works with|Node.js}}
<lang javascript>console.warn("Goodbye, World!")</lang>
<syntaxhighlight lang="javascript">console.warn("Goodbye, World!")</syntaxhighlight>


{{works with|Firefox}}
{{works with|Firefox}}
<lang javascript>console.error("Goodbye, World!")//only works if console object exists</lang>
<syntaxhighlight lang="javascript">console.error("Goodbye, World!")//only works if console object exists</syntaxhighlight>
OR
OR
<lang javascript>throw new Error("Goodbye, World!")//Should work in any browser</lang>
<syntaxhighlight lang="javascript">throw new Error("Goodbye, World!")//Should work in any browser</syntaxhighlight>


=={{header|jq}}==
=={{header|Joy}}==
<syntaxhighlight lang="joy">stderr "Goodbye, World!\n" fputchars pop.</syntaxhighlight>

<lang jq>jq -n —-arg s 'Goodbye, World!' '$s | stderr | empty'</lang>


=={{header|jq}}==
<syntaxhighlight lang="jq">jq -n —-arg s 'Goodbye, World!' '$s | stderr | empty'</syntaxhighlight>
`stderr` copies its input to STDERR before passing it along the pipeline, and hence the occurrence of `empty` above.
`stderr` copies its input to STDERR before passing it along the pipeline, and hence the occurrence of `empty` above.


=={{header|Julia}}==
=={{header|Julia}}==

<lang julia>println(STDERR, "Goodbye, World!")</lang>
Julia 0.7 or newer:

<syntaxhighlight lang="julia">println(stderr, "Goodbye, World!")</syntaxhighlight>

In versions prior to Julia 0.7, the standard I/O streams were capitalized:

<syntaxhighlight lang="julia">println(STDERR, "Goodbye, World!")</syntaxhighlight>


=={{header|Kotlin}}==
=={{header|Kotlin}}==
<lang scala>fun main(args: Array<String>) {
<syntaxhighlight lang="scala">fun main(args: Array<String>) {
System.err.println("Goodbye, World!")
System.err.println("Goodbye, World!")
}</lang>
}</syntaxhighlight>

=={{header|Lang}}==
<syntaxhighlight lang="lang">fn.errorln(Goodbye, World!)</syntaxhighlight>


=={{header|langur}}==
=={{header|langur}}==
<lang langur>writelnErr "goodbye, people"</lang>
<syntaxhighlight lang="langur">writelnErr "Goodbye, world."</syntaxhighlight>


=={{header|Lasso}}==
=={{header|Lasso}}==
<lang Lasso>define stderr(s::string) => {
<syntaxhighlight lang="lasso">define stderr(s::string) => {
file_stderr->writeBytes(#s->asBytes)
file_stderr->writeBytes(#s->asBytes)
}
}


stderr('Goodbye, World!')</lang>
stderr('Goodbye, World!')</syntaxhighlight>


=={{header|Lingo}}==
=={{header|Lingo}}==
*Windows:
*Windows:
{{libheader|CommandLine Xtra}}
{{libheader|CommandLine Xtra}}
<lang lingo>-- print to standard error
<syntaxhighlight lang="lingo">-- print to standard error
stdErr("Goodbye, World!", TRUE)
stdErr("Goodbye, World!", TRUE)


-- print to the Windows debug console (shown in realtime e.g. in Systernal's DebugView)
-- print to the Windows debug console (shown in realtime e.g. in Systernal's DebugView)
dbgPrint("Goodbye, World!")</lang>
dbgPrint("Goodbye, World!")</syntaxhighlight>


*Mac OS X:
*Mac OS X:
{{libheader|Shell Xtra}}
{{libheader|Shell Xtra}}
<lang lingo>sx = xtra("Shell").new()
<syntaxhighlight lang="lingo">sx = xtra("Shell").new()


-- print to standard error
-- print to standard error
Line 505: Line 579:


-- print to system.log (shown in realtime e.g. in Konsole.app)
-- print to system.log (shown in realtime e.g. in Konsole.app)
sx.shell_cmd("logger Goodbye, World!")</lang>
sx.shell_cmd("logger Goodbye, World!")</syntaxhighlight>


=={{header|Lean}}==
In lean4
<syntaxhighlight lang="lean4">
def main : IO Unit := do
let stderr ← IO.getStderr
stderr.putStrLn s!"Goodbye, World!"
</syntaxhighlight>
=={{header|LLVM}}==
=={{header|LLVM}}==
<lang llvm>; This is not strictly LLVM, as it uses the C library function "printf".
<syntaxhighlight lang="llvm">; This is not strictly LLVM, as it uses the C library function "printf".
; LLVM does not provide a way to print values, so the alternative would be
; LLVM does not provide a way to print values, so the alternative would be
; to just load the string into memory, and that would be boring.
; to just load the string into memory, and that would be boring.
Line 532: Line 613:
;-- exit
;-- exit
ret i32 0
ret i32 0
}</lang>
}</syntaxhighlight>
{{out}}
{{out}}
<pre>Goodbye, world!</pre>
<pre>Goodbye, world!</pre>
Line 538: Line 619:
=={{header|Logtalk}}==
=={{header|Logtalk}}==
The stream alias "user_error" can be used to print to the "standard error" stream.
The stream alias "user_error" can be used to print to the "standard error" stream.
<lang logtalk>
<syntaxhighlight lang="logtalk">
:- object(error_message).
:- object(error_message).


Line 546: Line 627:


:- end_object.
:- end_object.
</syntaxhighlight>
</lang>


=={{header|Lua}}==
=={{header|Lua}}==
<lang lua>io.stderr:write("Goodbye, World!\n")</lang>
<syntaxhighlight lang="lua">io.stderr:write("Goodbye, World!\n")</syntaxhighlight>


=={{header|m4}}==
=={{header|m4}}==
<lang m4>errprint(`Goodbye, World!
<syntaxhighlight lang="m4">errprint(`Goodbye, World!
')dnl</lang>
')dnl</syntaxhighlight>


=={{header|MANOOL}}==
=={{header|MANOOL}}==
<lang MANOOL>{{extern "manool.org.18/std/0.3/all"} in Err.WriteLine["Goodbye, World!"]}</lang>
<syntaxhighlight lang="manool">{{extern "manool.org.18/std/0.3/all"} in Err.WriteLine["Goodbye, World!"]}</syntaxhighlight>


=={{header|Maple}}==
=={{header|Maple}}==
<syntaxhighlight lang="maple">
<lang Maple>
error "Goodbye World"
error "Goodbye World"
</syntaxhighlight>
</lang>


=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<lang Mathematica>Write[Streams["stderr"], "Goodbye, World!"]</lang>
<syntaxhighlight lang="mathematica">Write[Streams["stderr"], "Goodbye, World!"]</syntaxhighlight>


=={{header|MATLAB}} / {{header|Octave}}==
=={{header|MATLAB}} / {{header|Octave}}==
This prints to standard error, and continues execution
This prints to standard error, and continues execution
<lang MATLAB>fprintf(2,'Goodbye, World!')</lang>
<syntaxhighlight lang="matlab">fprintf(2,'Goodbye, World!')</syntaxhighlight>
This will not stop further execution, if called from within a script or function.
This will not stop further execution, if called from within a script or function.
<lang MATLAB>error 'Goodbye, World!'</lang>
<syntaxhighlight lang="matlab">error 'Goodbye, World!'</syntaxhighlight>


=={{header|Mercury}}==
=={{header|Mercury}}==
<lang>
<syntaxhighlight lang="text">
:- module hello_error.
:- module hello_error.
:- interface.
:- interface.
Line 585: Line 666:
io.stderr_stream(Stderr, !IO),
io.stderr_stream(Stderr, !IO),
io.write_string(Stderr, "Goodbye, World!\n", !IO).
io.write_string(Stderr, "Goodbye, World!\n", !IO).
</syntaxhighlight>
</lang>


=={{header|Metafont}}==
=={{header|Metafont}}==
Metafont has no a real way to send a text to the standard output/error nor to a file. Anyway it exists the <code>errmessage</code> command which will output an error message and prompt the user for action (suspending the interpretation of the source).
Metafont has no a real way to send a text to the standard output/error nor to a file. Anyway it exists the <code>errmessage</code> command which will output an error message and prompt the user for action (suspending the interpretation of the source).


<lang metafont>errmessage "Error";
<syntaxhighlight lang="metafont">errmessage "Error";
message "...going on..."; % if the user decides to go on and not to stop
message "...going on..."; % if the user decides to go on and not to stop
% the program because of the error.</lang>
% the program because of the error.</syntaxhighlight>

=={{header|min}}==
{{works with|min|0.37.0}}
Currently, ''min'' has three possibilities for outputting to stderr:
<syntaxhighlight lang="min">"Goodbye, World!" warn!
"Goodbye, World!" error!
"Goodbye, World!" fatal!</syntaxhighlight>
The first two depend on the current log level (and are enabled by default). The last one additionally terminates the program.


=={{header|ML/I}}==
=={{header|ML/I}}==
<lang ML/I>MCSET S4=1
<syntaxhighlight lang="ml/i">MCSET S4=1
MCNOTE Goodbye, World!</lang>
MCNOTE Goodbye, World!</syntaxhighlight>

=={{header|Miranda}}==
<syntaxhighlight lang="miranda">main :: [sys_message]
main = [Stderr "Hello, world!\n"]</syntaxhighlight>


=={{header|Modula-2}}==
=={{header|Modula-2}}==
<lang modula2>MODULE HelloErr;
<syntaxhighlight lang="modula2">MODULE HelloErr;
IMPORT StdError;
IMPORT StdError;


Line 605: Line 698:
StdError.WriteString('Goodbye, World!');
StdError.WriteString('Goodbye, World!');
StdError.WriteLn
StdError.WriteLn
END HelloErr.</lang>
END HelloErr.</syntaxhighlight>


=={{header|Modula-3}}==
=={{header|Modula-3}}==
<lang modula3>MODULE Stderr EXPORTS Main;
<syntaxhighlight lang="modula3">MODULE Stderr EXPORTS Main;


IMPORT Wr, Stdio;
IMPORT Wr, Stdio;
Line 614: Line 707:
BEGIN
BEGIN
Wr.PutText(Stdio.stderr, "Goodbye, World!\n");
Wr.PutText(Stdio.stderr, "Goodbye, World!\n");
END Stderr.</lang>
END Stderr.</syntaxhighlight>


=={{header|N/t/roff}}==
=={{header|N/t/roff}}==
Line 620: Line 713:
The request <code>.tm</code> prints whatever after it, until and including the newline character, to the standard error. The string parsed to it need not be quoted and will never appear on standard output.
The request <code>.tm</code> prints whatever after it, until and including the newline character, to the standard error. The string parsed to it need not be quoted and will never appear on standard output.


<lang N/t/roff>
<syntaxhighlight lang="n/t/roff">
.tm Goodbye, World!
.tm Goodbye, World!
</syntaxhighlight>
</lang>


=={{header|Neko}}==
=={{header|Neko}}==
<syntaxhighlight lang="actionscript">/**
<lang ActionScript>/**
Hello world, to standard error, in Neko
Hello world, to standard error, in Neko
Tectonics:
Tectonics:
Line 638: Line 731:
var stderr = $loader.loadprim("std@file_stderr", 0)();
var stderr = $loader.loadprim("std@file_stderr", 0)();


file_write(stderr, "Goodbye, World!\n", 0, 16);</lang>
file_write(stderr, "Goodbye, World!\n", 0, 16);</syntaxhighlight>


{{out}}
{{out}}
Line 648: Line 741:


=={{header|Nemerle}}==
=={{header|Nemerle}}==
<lang Nemerle>System.Console.Error.WriteLine("Goodbye, World!");</lang>
<syntaxhighlight lang="nemerle">System.Console.Error.WriteLine("Goodbye, World!");</syntaxhighlight>


=={{header|NetRexx}}==
=={{header|NetRexx}}==
<lang NetRexx>/* NetRexx */
<syntaxhighlight lang="netrexx">/* NetRexx */


options replace format comments java crossref savelog symbols binary
options replace format comments java crossref savelog symbols binary


System.err.println("Goodbye, World!")
System.err.println("Goodbye, World!")
</syntaxhighlight>
</lang>


=={{header|Nim}}==
=={{header|Nim}}==
<lang nim>stderr.writeln "Hello World"</lang>
<syntaxhighlight lang="nim">stderr.writeLine "Hello World"</syntaxhighlight>

=={{header|Nu}}==
<syntaxhighlight lang="nu">
print -e "Goodbye, World!"
</syntaxhighlight>


=={{header|Oberon-2}}==
=={{header|Oberon-2}}==
Oxford Oberon-2
Oxford Oberon-2
<lang oberon2>
<syntaxhighlight lang="oberon2">
MODULE HelloErr;
MODULE HelloErr;
IMPORT Err;
IMPORT Err;
Line 669: Line 767:
Err.String("Goodbye, World!");Err.Ln
Err.String("Goodbye, World!");Err.Ln
END HelloErr.
END HelloErr.
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 683: Line 781:
is an NSString object, and it also prepends a timestamp.
is an NSString object, and it also prepends a timestamp.


<lang objc>#import <Foundation/Foundation.h>
<syntaxhighlight lang="objc">#import <Foundation/Foundation.h>


int main()
int main()
Line 691: Line 789:
NSLog(@"Goodbye, World!");
NSLog(@"Goodbye, World!");
return 0;
return 0;
}</lang>
}</syntaxhighlight>


=={{header|OCaml}}==
=={{header|OCaml}}==
<lang ocaml>prerr_endline "Goodbye, World!"; (* this is how you print a string with newline to stderr *)
<syntaxhighlight lang="ocaml">prerr_endline "Goodbye, World!"; (* this is how you print a string with newline to stderr *)
Printf.eprintf "Goodbye, World!\n"; (* this is how you would use printf with stderr *)</lang>
Printf.eprintf "Goodbye, World!\n"; (* this is how you would use printf with stderr *)</syntaxhighlight>


we can also use the ''out_channel'' '''stderr''':
we can also use the ''out_channel'' '''stderr''':


<lang ocaml>output_string stderr "Goodbye, World!\n";
<syntaxhighlight lang="ocaml">output_string stderr "Goodbye, World!\n";
Printf.fprintf stderr "Goodbye, World!\n";</lang>
Printf.fprintf stderr "Goodbye, World!\n";</syntaxhighlight>


finally the [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html Unix] module also provides unbuffered write functions:
finally the [http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html Unix] module also provides unbuffered write functions:


<lang ocaml>let msg = "Goodbye, World!\n" in
<syntaxhighlight lang="ocaml">let msg = "Goodbye, World!\n" in
ignore(Unix.write Unix.stderr msg 0 (String.length msg)) ;;</lang>
ignore(Unix.write Unix.stderr msg 0 (String.length msg)) ;;</syntaxhighlight>


=={{header|Octave}}==
=={{header|Octave}}==
<lang octave>fprintf(stderr, "Goodbye, World!\n");</lang>
<syntaxhighlight lang="octave">fprintf(stderr, "Goodbye, World!\n");</syntaxhighlight>


=={{header|Oforth}}==
=={{header|Oforth}}==
<lang Oforth>System.Err "Goodbye, World!" << cr</lang>
<syntaxhighlight lang="oforth">System.Err "Goodbye, World!" << cr</syntaxhighlight>


=={{header|Ol}}==
=={{header|Ol}}==
<lang scheme>
<syntaxhighlight lang="scheme">
(print-to stderr "Goodbye, World!")
(print-to stderr "Goodbye, World!")
</syntaxhighlight>
</lang>


=={{header|ooRexx}}==
=={{header|ooRexx}}==
ooRexx provides a .error object that writes output to the standard error stream.
ooRexx provides a .error object that writes output to the standard error stream.
<lang ooRexx>.error~lineout("Goodbye, World!")</lang>
<syntaxhighlight lang="oorexx">.error~lineout("Goodbye, World!")</syntaxhighlight>
The .error object is a proxy that delegates to a backing stream, so this might be redirected.
The .error object is a proxy that delegates to a backing stream, so this might be redirected.
By default, this delegates to the .stderr object, which can also be used directly.
By default, this delegates to the .stderr object, which can also be used directly.
<lang ooRexx>.stderr~lineout("Goodbye, World!")</lang>
<syntaxhighlight lang="oorexx">.stderr~lineout("Goodbye, World!")</syntaxhighlight>
or in 'Classic REXX style'
or in 'Classic REXX style'
<lang ooRexx>/* REXX ---------------------------------------------------------------
<syntaxhighlight lang="oorexx">/* REXX ---------------------------------------------------------------
* 07.07.2014 Walter Pachl
* 07.07.2014 Walter Pachl
* 12.07.2014 WP see Discussion where redirection from within the program is shown
* 12.07.2014 WP see Discussion where redirection from within the program is shown
Line 733: Line 831:
Call lineout ,'Hello, world!'
Call lineout ,'Hello, world!'
Say 'and this is the error output:'
Say 'and this is the error output:'
'type err.txt' </lang>
'type err.txt' </syntaxhighlight>


=={{header|Oz}}==
=={{header|Oz}}==
<lang oz>functor
<syntaxhighlight lang="oz">functor
import Application System
import Application System
define
define
{System.showError "Goodbye, World!"}
{System.showError "Goodbye, World!"}
{Application.exit 0}
{Application.exit 0}
end</lang>
end</syntaxhighlight>


=={{header|PARI/GP}}==
=={{header|PARI/GP}}==
<lang parigp>error("Goodbye, World!")</lang>
<syntaxhighlight lang="parigp">error("Goodbye, World!")</syntaxhighlight>


=={{header|Pascal}}==
=={{header|Pascal}}==
{{Works with|Free Pascal}}
{{Works with|Free Pascal}}
<lang pascal>program byeworld;
<syntaxhighlight lang="pascal">program byeworld;
begin
begin
writeln(StdErr, 'Goodbye, World!');
writeln(StdErr, 'Goodbye, World!');
end.</lang>
end.</syntaxhighlight>


=={{header|Perl}}==
=={{header|Perl}}==
<lang perl>warn "Goodbye, World!\n";</lang>
<syntaxhighlight lang="perl">warn "Goodbye, World!\n";</syntaxhighlight>


Or:
Or:


<lang perl>print STDERR "Goodbye, World!\n";</lang>
<syntaxhighlight lang="perl">print STDERR "Goodbye, World!\n";</syntaxhighlight>

=={{header|Perl 6}}==
<lang perl6>note "Goodbye, World!";</lang>


=={{header|Phix}}==
=={{header|Phix}}==
<!--<syntaxhighlight lang="phix">-->
<lang Phix>puts(2,"Goodbye, World!\n")</lang>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Goodbye, World!"</span><span style="color: #0000FF;">)</span>
<!--</syntaxhighlight>-->


=={{header|PHP}}==
=={{header|PHP}}==
<lang php>fprintf(STDERR, "Goodbye, World!\n");</lang>
<syntaxhighlight lang="php">fprintf(STDERR, "Goodbye, World!\n");</syntaxhighlight>
or
or
<lang php>file_put_contents("php://stderr","Hello World!\n");</lang>
<syntaxhighlight lang="php">file_put_contents("php://stderr","Hello World!\n");</syntaxhighlight>

=={{header|Picat}}==
<syntaxhighlight lang="picat">println(stderr,"Goodbye, World!")</syntaxhighlight>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==
<lang PicoLisp>(out 2 (prinl "Goodbye, World!"))</lang>
<syntaxhighlight lang="picolisp">(out 2 (prinl "Goodbye, World!"))</syntaxhighlight>

=={{header|Pike}}==
<syntaxhighlight lang="pike">werror("Goodbye, World!");</syntaxhighlight>


=={{header|PL/I}}==
=={{header|PL/I}}==
<lang PL/I>display ('Goodbye, World');</lang>
<syntaxhighlight lang="pl/i">display ('Goodbye, World');</syntaxhighlight>


=={{header|PostScript}}==
=={{header|PostScript}}==
<lang postscript>(%stderr) (w) file dup
<syntaxhighlight lang="postscript">(%stderr) (w) file dup
(Goodbye, World!
(Goodbye, World!
) writestring
) writestring
closefile</lang>
closefile</syntaxhighlight>


=={{header|PowerBASIC}}==
=={{header|PowerBASIC}}==
{{works with|PowerBASIC Console Compiler}}
{{works with|PowerBASIC Console Compiler}}


<lang powerbasic>STDERR "Goodbye, World!"</lang>
<syntaxhighlight lang="powerbasic">STDERR "Goodbye, World!"</syntaxhighlight>


=={{header|PowerShell}}==
=={{header|PowerShell}}==
Line 794: Line 897:
standard Write-Error cmdlet is mainly for sending annotated error messages
standard Write-Error cmdlet is mainly for sending annotated error messages
to the host:
to the host:
<lang powershell>Write-Error "Goodbye, World!"</lang>
<syntaxhighlight lang="powershell">Write-Error "Goodbye, World!"</syntaxhighlight>
Note that this outputs more than just the message,
Note that this outputs more than just the message,
because behind the scenes it is an uncaught exception:
because behind the scenes it is an uncaught exception:
Line 801: Line 904:
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException</pre>
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException</pre>
To accurately reproduce the behavior of other languages one has to resort to .NET in this case:
To accurately reproduce the behavior of other languages one has to resort to .NET in this case:
<lang powershell>[Console]::Error.WriteLine("Goodbye, World!")</lang>
<syntaxhighlight lang="powershell">[Console]::Error.WriteLine("Goodbye, World!")</syntaxhighlight>


=={{header|PureBasic}}==
=={{header|PureBasic}}==
Line 809: Line 912:
Standard error output can be used in conjunction with [http://www.purebasic.com/documentation/process/readprogramerror.html ReadProgramError()] to reads a line from an other programs error output (stderr).
Standard error output can be used in conjunction with [http://www.purebasic.com/documentation/process/readprogramerror.html ReadProgramError()] to reads a line from an other programs error output (stderr).


<lang PureBasic>ConsoleError("Goodbye, World!")</lang>
<syntaxhighlight lang="purebasic">ConsoleError("Goodbye, World!")</syntaxhighlight>


=={{header|Python}}==
=={{header|Python}}==
{{works with|Python|2.x}}
{{works with|Python|2.x}}
<lang python>import sys
<syntaxhighlight lang="python">import sys


print >> sys.stderr, "Goodbye, World!"</lang>
print >> sys.stderr, "Goodbye, World!"</syntaxhighlight>


{{works with|Python|3.x}}
{{works with|Python|3.x}}
<lang python>import sys
<syntaxhighlight lang="python">import sys


print("Goodbye, World!", file=sys.stderr)</lang>
print("Goodbye, World!", file=sys.stderr)</syntaxhighlight>


Works with either:
Works with either:
<lang python>import sys
<syntaxhighlight lang="python">import sys


sys.stderr.write("Goodbye, World!\n")</lang>
sys.stderr.write("Goodbye, World!\n")</syntaxhighlight>


=={{header|R}}==
=={{header|R}}==
<lang R>cat("Goodbye, World!", file=stderr())</lang>
<syntaxhighlight lang="r">cat("Goodbye, World!", file=stderr())</syntaxhighlight>


=={{header|Ra}}==
=={{header|Ra}}==
<syntaxhighlight lang="ra">
<lang Ra>
class HelloWorld
class HelloWorld
**Prints "Goodbye, World!" to standard error**
**Prints "Goodbye, World!" to standard error**
Line 838: Line 941:


print to Console.error made !, "Goodbye, World!"
print to Console.error made !, "Goodbye, World!"
</syntaxhighlight>
</lang>


=={{header|Racket}}==
=={{header|Racket}}==
<syntaxhighlight lang="racket">
<lang Racket>
(eprintf "Goodbye, World!\n")
(eprintf "Goodbye, World!\n")
</syntaxhighlight>
</lang>

=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku" line>note "Goodbye, World!";</syntaxhighlight>


=={{header|Retro}}==
=={{header|Retro}}==
<lang Retro>'Goodbye,_World! '/dev/stderr file:spew</lang>
<syntaxhighlight lang="retro">'Goodbye,_World! '/dev/stderr file:spew</syntaxhighlight>


=={{header|REXX}}==
=={{header|REXX}}==
Line 855: Line 962:
<br>If the &nbsp; '''stderr''' &nbsp; name is supported and enabled, the output is written to the terminal.
<br>If the &nbsp; '''stderr''' &nbsp; name is supported and enabled, the output is written to the terminal.
<br>If not supported or disabled, the output is written to a (disk) file named &nbsp; '''STDERR'''.
<br>If not supported or disabled, the output is written to a (disk) file named &nbsp; '''STDERR'''.
<lang rexx>call lineout 'STDERR', "Goodbye, World!"</lang>
<syntaxhighlight lang="rexx">call lineout 'STDERR', "Goodbye, World!"</syntaxhighlight>


===version 2===
===version 2===
Same as above, but uses a different style and also invokes &nbsp; '''charout''' &nbsp; instead of &nbsp; '''lineout'''.
Same as above, but uses a different style and also invokes &nbsp; '''charout''' &nbsp; instead of &nbsp; '''lineout'''.
<lang rexx>msgText = 'Goodbye, World!'
<syntaxhighlight lang="rexx">msgText = 'Goodbye, World!'
call charout 'STDERR', msgText</lang>
call charout 'STDERR', msgText</syntaxhighlight>


===version 3===
===version 3===
this works on Windows 7 and ooRexx and REGINA
This works on Windows 7 and ooRexx and REGINA
<lang rexx>/* REXX ---------------------------------------------------------------
<syntaxhighlight lang="rexx">/* REXX ---------------------------------------------------------------
* 07.07.2014 Walter Pachl
* 07.07.2014 Walter Pachl
* enter the appropriate command shown in a command prompt.
* enter the appropriate command shown in a command prompt.
Line 877: Line 984:
Call lineout ,'Hello, world!'
Call lineout ,'Hello, world!'
Say 'and this is the error output:'
Say 'and this is the error output:'
'type err.txt'</lang>
'type err.txt'</syntaxhighlight>

===version 4===
ARexx with tracing console
<syntaxhighlight lang="rexx">/**/
Address command tco
Call writeln stderr,'Good bye, world!'
Call writeln stdout,'Hello, world!'</syntaxhighlight>


=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>fputs(stderr,"Goodbye, World!")</lang>
<syntaxhighlight lang="ring">fputs(stderr,"Goodbye, World!")</syntaxhighlight>

=={{header|RPL}}==
There is no error console in RPL but all error messages are displayed at the top two lines of the display, which freezes until a key is pressed.
This can be mimicked with the <code>DISP</code> instruction:
≪ "Hello world!" 1 DISP ≫


=={{header|Ruby}}==
=={{header|Ruby}}==
<lang ruby>$stderr.puts "Goodbye, World!"</lang>
<syntaxhighlight lang="ruby">STDERR.puts "Goodbye, World!"</syntaxhighlight>
The following also works, unless you have disabled warnings (ruby command line option "-W0" or set <code>$VERBOSE=nil</code>)
The following also works, unless you have disabled warnings (ruby command line option "-W0" or set <code>$VERBOSE=nil</code>)
<lang ruby>warn "Goodbye, World!"</lang>
<syntaxhighlight lang="ruby">warn "Goodbye, World!"</syntaxhighlight>


=={{header|Run BASIC}}==
=={{header|Run BASIC}}==
<lang runbasic>html "<script>
<syntaxhighlight lang="runbasic">html "<script>
window.open('','error_msg','');
window.open('','error_msg','');
document.write('Goodbye, World!');
document.write('Goodbye, World!');
</script>""</lang>
</script>""</syntaxhighlight>
Run Basic runs in a browser.
Run Basic runs in a browser.
This opens a new browser window,
This opens a new browser window,
Line 897: Line 1,016:


=={{header|Rust}}==
=={{header|Rust}}==
<lang rust>fn main() {
<syntaxhighlight lang="rust">fn main() {
eprintln!("Hello, {}!", "world");
eprintln!("Hello, {}!", "world");
}</lang>
}</syntaxhighlight>
or
or
<lang rust>fn main() {
<syntaxhighlight lang="rust">fn main() {
use ::std::io::Write;
use ::std::io::Write;
let (stderr, errmsg) = (&mut ::std::io::stderr(), "Error writing to stderr");
let (stderr, errmsg) = (&mut ::std::io::stderr(), "Error writing to stderr");
Line 908: Line 1,027:
let (goodbye, world) = ("Goodbye", "world");
let (goodbye, world) = ("Goodbye", "world");
writeln!(stderr, "{}, {}!", goodbye, world).expect(errmsg);
writeln!(stderr, "{}, {}!", goodbye, world).expect(errmsg);
}</lang>
}</syntaxhighlight>
or
or
<lang rust>fn main() {
<syntaxhighlight lang="rust">fn main() {
use std::io::{self, Write};
use std::io::{self, Write};


Line 919: Line 1,038:
io::stderr().write(&*format!("{}, {}!", goodbye, world).as_bytes()).expect("Could not write to stderr");
io::stderr().write(&*format!("{}, {}!", goodbye, world).as_bytes()).expect("Could not write to stderr");
// Clearly, if you want formatted strings there's no reason not to just use writeln!
// Clearly, if you want formatted strings there's no reason not to just use writeln!
}</lang>
}</syntaxhighlight>


=={{header|S-lang}}==
=={{header|S-lang}}==
<lang S-lang>() = fputs("Goodbye, World!\n", stderr);</lang>
<syntaxhighlight lang="s-lang">() = fputs("Goodbye, World!\n", stderr);</syntaxhighlight>


=={{header|Salmon}}==
=={{header|Salmon}}==


<syntaxhighlight lang="salmon">
<lang Salmon>
standard_error.print("Goodbye, World!\n");
standard_error.print("Goodbye, World!\n");
</syntaxhighlight>
</lang>


or
or


<syntaxhighlight lang="salmon">
<lang Salmon>
include "short.salm";
include "short.salm";
stderr.print("Goodbye, World!\n");
stderr.print("Goodbye, World!\n");
</syntaxhighlight>
</lang>


or
or


<syntaxhighlight lang="salmon">
<lang Salmon>
include "shorter.salm";
include "shorter.salm";
err.print("Goodbye, World!\n");
err.print("Goodbye, World!\n");
</syntaxhighlight>
</lang>
or
or


<syntaxhighlight lang="salmon">
<lang Salmon>
include "shorter.salm";
include "shorter.salm";
se.print("Goodbye, World!\n");
se.print("Goodbye, World!\n");
</syntaxhighlight>
</lang>


=={{header|Sather}}==
=={{header|Sather}}==
<lang sather>class MAIN is
<syntaxhighlight lang="sather">class MAIN is
main is
main is
#ERR + "Hello World!\n";
#ERR + "Hello World!\n";
end;
end;
end;</lang>
end;</syntaxhighlight>


=={{header|Scala}}==
=={{header|Scala}}==
Line 962: Line 1,081:
===Ad hoc REPL solution===
===Ad hoc REPL solution===
Ad hoc solution as [http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop REPL] script:
Ad hoc solution as [http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop REPL] script:
<lang Scala>Console.err.println("Goodbye, World!")</lang>
<syntaxhighlight lang="scala">Console.err.println("Goodbye, World!")</syntaxhighlight>


===Via Java runtime===
===Via Java runtime===
This is a call to the Java run-time library. '''Not recommendated'''.
This is a call to the Java run-time library. '''Not recommendated'''.
<lang Scala>System.err.println("Goodbye, World!")</lang>
<syntaxhighlight lang="scala">System.err.println("Goodbye, World!")</syntaxhighlight>


===Via Scala Console API===
===Via Scala Console API===
This is a call to the Scala API. '''Recommendated'''.
This is a call to the Scala API. '''Recommendated'''.
<lang Scala>Console.err.println("Goodbye, World!")</lang>
<syntaxhighlight lang="scala">Console.err.println("Goodbye, World!")</syntaxhighlight>


===Short term deviation to err===
===Short term deviation to err===
<lang Scala>Console.withOut(Console.err) { println("This goes to default _err_") }</lang>
<syntaxhighlight lang="scala">Console.withOut(Console.err) { println("This goes to default _err_") }</syntaxhighlight>


===Long term deviation to err===
===Long term deviation to err===
<lang Scala> println ("Out not deviated")
<syntaxhighlight lang="scala"> println ("Out not deviated")
Console.setOut(Console.err)
Console.setOut(Console.err)
println ("Out deviated")
println ("Out deviated")
Console.setOut(Console.out) // Reset to normal</lang>
Console.setOut(Console.out) // Reset to normal</syntaxhighlight>

=={{header|Scilab}}==
<lang scilab>error("Goodbye, World!")</lang>


=={{header|Scheme}}==
=={{header|Scheme}}==
<lang scheme>(error "Goodbye, World!")</lang>
<syntaxhighlight lang="scheme">(error "Goodbye, World!")</syntaxhighlight>

=={{header|Scilab}}==
<syntaxhighlight lang="scilab">error("Goodbye, World!")</syntaxhighlight>


=={{header|sed}}==
=={{header|sed}}==
Requires <tt>/dev/stderr</tt>
Requires <tt>/dev/stderr</tt>


<lang sed>#n
<syntaxhighlight lang="sed">#n
1 {
1 {
s/.*/Goodbye, World!/w /dev/stderr
s/.*/Goodbye, World!/w /dev/stderr
}</lang>
}</syntaxhighlight>


This program requires at least 1 line of input.
This program requires at least 1 line of input.
Line 1,001: Line 1,120:


{{out|Test output}}
{{out|Test output}}
<lang bash>$ echo a | sed -f error.sed >/dev/null
<syntaxhighlight lang="bash">$ echo a | sed -f error.sed >/dev/null
Goodbye, World!</lang>
Goodbye, World!</syntaxhighlight>


=={{header|Seed7}}==
=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
<syntaxhighlight lang="seed7">$ include "seed7_05.s7i";


const proc: main is func
const proc: main is func
begin
begin
writeln(STD_ERR, "Goodbye, World!");
writeln(STD_ERR, "Goodbye, World!");
end func;</lang>
end func;</syntaxhighlight>


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>STDERR.println("Goodbye, World!");</lang>
<syntaxhighlight lang="ruby">STDERR.println("Goodbye, World!");</syntaxhighlight>


=={{header|Slate}}==
=={{header|Slate}}==
<lang slate>inform: 'Goodbye, World!' &target: DebugConsole.</lang>
<syntaxhighlight lang="slate">inform: 'Goodbye, World!' &target: DebugConsole.</syntaxhighlight>

=={{header|Slope}}==
<syntaxhighlight lang="slope">(write "Goodbye, world!" stderr)</syntaxhighlight>


=={{header|Smalltalk}}==
=={{header|Smalltalk}}==
The details on to which name stderr is bound may vary between Smalltalk dialects. If different, a "Smalltalk at:#Stderr put:<name your stream here>" should provide compatibility.
The details on to which name stderr is bound may vary between Smalltalk dialects. If different, a "Smalltalk at:#Stderr put:<name your stream here>" should provide compatibility.
<syntaxhighlight lang="smalltalk">Stderr nextPutAll: 'Goodbye, World!'</syntaxhighlight>


However, all Smalltalks provide a console named "Transcript", where diagnostics is usually sent to (which is convenient, if there is no stderr to look at, as when started in Windows as an exe, vs. a com).<br>Thus:
<lang smalltalk>Stderr nextPutAll: 'Goodbye, World!'</lang>
<syntaxhighlight lang="smalltalk">Transcript show: 'Goodbye, World!'</syntaxhighlight>

However, all smalltalks provide a console named "Transcript", where diagnostics is usually sent to. Thus:

<lang smalltalk>Transcript show: 'Goodbye, World!'</lang>


will work on all, and is the preferred way to do this.
will work on all, and is the preferred way to do this.
And yes, when operating UI-less, the global "Transcript" is usually bound to the stderr stream.
<br>(and yes, when running UI-less as a console program, the global "Transcript" is usually bound to the stderr stream).

The above tells the stream to write a string;
you can also tell the string to print itself onto some stream:
<syntaxhighlight lang="smalltalk">'Goodbye, World!' printOn: Stderr</syntaxhighlight>
Both have the same effect.


=={{header|SNOBOL4}}==
=={{header|SNOBOL4}}==
<lang snobol4> terminal = "Error"
<syntaxhighlight lang="snobol4"> terminal = "Error"
output = "Normal text"
output = "Normal text"
end</lang>
end</syntaxhighlight>


=={{header|Standard ML}}==
=={{header|Standard ML}}==
<lang sml>TextIO.output (TextIO.stdErr, "Goodbye, World!\n")</lang>
<syntaxhighlight lang="sml">TextIO.output (TextIO.stdErr, "Goodbye, World!\n")</syntaxhighlight>


=={{header|Swift}}==
=={{header|Swift}}==
<lang Swift>import Foundation
<syntaxhighlight lang="swift">import Foundation


let out = NSOutputStream(toFileAtPath: "/dev/stderr", append: true)
let out = NSOutputStream(toFileAtPath: "/dev/stderr", append: true)
Line 1,049: Line 1,174:
if let bytes = success {
if let bytes = success {
println("\nWrote \(bytes) bytes")
println("\nWrote \(bytes) bytes")
}</lang>
}</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 1,057: Line 1,182:


=={{header|Tcl}}==
=={{header|Tcl}}==
<lang tcl>puts stderr "Goodbye, World!"</lang>
<syntaxhighlight lang="tcl">puts stderr "Goodbye, World!"</syntaxhighlight>


=={{header|Transact-SQL}}==
=={{header|Transact-SQL}}==
<lang Transact-SQL> RAISERROR 'Goodbye, World!', 16, 1 </lang>
<syntaxhighlight lang="transact-sql"> RAISERROR 'Goodbye, World!', 16, 1 </syntaxhighlight>

=={{header|True BASIC}}==
<syntaxhighlight lang="basic">
CAUSE error 1, "Goodbye World!"
END
</syntaxhighlight>


=={{header|TUSCRIPT}}==
=={{header|TUSCRIPT}}==
<lang tuscript>
<syntaxhighlight lang="tuscript">
$$ MODE TUSCRIPT
$$ MODE TUSCRIPT
PRINT/ERROR "hello world"
PRINT/ERROR "hello world"
text="goodbye world"
text="goodbye world"
PRINT/ERROR text
PRINT/ERROR text
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 1,077: Line 1,208:
=={{header|UNIX Shell}}==
=={{header|UNIX Shell}}==
{{works with|Bourne Shell}}
{{works with|Bourne Shell}}
<lang bash>echo "Goodbye, World!" >&2</lang>
<syntaxhighlight lang="bash">echo "Goodbye, World!" >&2</syntaxhighlight>


==={{header|C Shell}}===
==={{header|C Shell}}===
<lang csh>echo "Goodbye, World!" >/dev/stderr</lang>
<syntaxhighlight lang="csh">echo "Goodbye, World!" >/dev/stderr</syntaxhighlight>


This requires <code>/dev/stderr</code>, a device node from [[BSD]]
This requires <code>/dev/stderr</code>, a device node from [[BSD]]
Line 1,087: Line 1,218:


=={{header|Ursa}}==
=={{header|Ursa}}==
<lang ursa>out "goodbye, world!" endl console.err</lang>
<syntaxhighlight lang="ursa">out "goodbye, world!" endl console.err</syntaxhighlight>


=={{header|VBA}}==
=={{header|VBA}}==
<syntaxhighlight lang="vb">
<lang VB>
Sub StandardError()
Sub StandardError()
Debug.Print "Goodbye World!"
Debug.Print "Goodbye World!"
End Sub
End Sub
</syntaxhighlight>
</lang>


=={{header|VBScript}}==
=={{header|VBScript}}==
Must work in cscript.exe
Must work in cscript.exe
<lang vb>WScript.StdErr.WriteLine "Goodbye, World!"</lang>
<syntaxhighlight lang="vb">WScript.StdErr.WriteLine "Goodbye, World!"</syntaxhighlight>


=={{header|Verbexx}}==
=={{header|Verbexx}}==
<lang verbexx>@STDERR "Goodbye, World!\n";</lang>
<syntaxhighlight lang="verbexx">@STDERR "Goodbye, World!\n";</syntaxhighlight>


=={{header|Visual Basic .NET}}==
=={{header|Visual Basic .NET}}==
<lang vbnet>Module Module1
<syntaxhighlight lang="vbnet">Module Module1


Sub Main()
Sub Main()
Line 1,110: Line 1,241:
End Sub
End Sub


End Module</lang>
End Module</syntaxhighlight>


=={{header|WDTE}}==
=={{header|WDTE}}==
<lang WDTE>io.writeln io.stderr 'Goodbye, World!';</lang>
<syntaxhighlight lang="wdte">io.writeln io.stderr 'Goodbye, World!';</syntaxhighlight>

=={{header|Wren}}==
<syntaxhighlight lang="wren">Fiber.abort("Goodbye, World!")</syntaxhighlight>


=={{header|X86 Assembly}}==
=={{header|X86 Assembly}}==
Line 1,123: Line 1,257:


Prints "Goodbye, World!" to stderr (and there is probably an even simpler version):
Prints "Goodbye, World!" to stderr (and there is probably an even simpler version):
<lang asm>section .data
<syntaxhighlight lang="asm">section .data
msg db 'Goodbye, World!', 0AH
msg db 'Goodbye, World!', 0AH
len equ $-msg
len equ $-msg
Line 1,137: Line 1,271:
mov ebx, 1
mov ebx, 1
mov eax, 1
mov eax, 1
int 80h</lang>
int 80h</syntaxhighlight>


=={{header|XLISP}}==
=={{header|XLISP}}==
<lang xlisp>(DISPLAY "Goodbye, World!" *ERROR-OUTPUT*)</lang>
<syntaxhighlight lang="xlisp">(DISPLAY "Goodbye, World!" *ERROR-OUTPUT*)</syntaxhighlight>


=={{header|XPL0}}==
=={{header|XPL0}}==
Line 1,150: Line 1,284:
which is device 2.
which is device 2.


<lang XPL0>code Text=12;
<syntaxhighlight lang="xpl0">code Text=12;
Text(2, "Goodbye, World!")</lang>
Text(2, "Goodbye, World!")</syntaxhighlight>


=={{header|Yabasic}}==
<syntaxhighlight lang="yabasic">
error "Goodbye World!"
</syntaxhighlight>


=={{header|Zig}}==
'''Works with:''' 0.10.x, 0.11.x, 0.12.0-dev.1357+10d03acdb

Variant with error handling:
<syntaxhighlight lang="zig">const std = @import("std");

pub fn main() std.fs.File.WriteError!void {
const stderr = std.io.getStdErr();

try stderr.writeAll("Goodbye, World!\n");
}</syntaxhighlight>
'''Works with:''' 0.10.x, 0.11.x, 0.12.0-dev.1357+10d03acdb

Variant with no error handling (useful when debugging):
<syntaxhighlight lang="zig">const std = @import("std");

pub fn main() void {
// Silently returns if writing to stderr fails.
std.debug.print("Goodbye, World!\n", .{});
}</syntaxhighlight>


=={{header|zkl}}==
=={{header|zkl}}==
<lang zkl>File.stderr.writeln("Goodbye, World!")</lang>
<syntaxhighlight lang="zkl">File.stderr.writeln("Goodbye, World!")</syntaxhighlight>

Latest revision as of 22:21, 4 March 2024

Task
Hello world/Standard error
You are encouraged to solve this task according to the task description, using any language you may know.
Hello world/Standard error is part of Short Circuit's Console Program Basics selection.

A common practice in computing is to send error messages to a different output stream than normal text console messages.

The normal messages print to what is called "standard output" or "standard out".

The error messages print to "standard error".

This separation can be used to redirect error messages to a different place than normal messages.


Task

Show how to print a message to standard error by printing     Goodbye, World!     on that stream.

11l

Translation of: Python
:stderr.write("Goodbye, World!\n")

4DOS Batch

echoerr Goodbye, World!

AArch64 Assembly

.equ STDERR, 2
.equ SVC_WRITE, 64
.equ SVC_EXIT, 93

.text
.global _start

_start:
	stp x29, x30, [sp, -16]!
	mov x0, #STDERR
	ldr x1, =msg
	mov x2, 15
	mov x8, #SVC_WRITE
	mov x29, sp
	svc #0 // write(stderr, msg, 15);
	ldp x29, x30, [sp], 16
	mov x0, #0
	mov x8, #SVC_EXIT
	svc #0 // exit(0);

msg:	.ascii "Goodbye World!\n"

Ada

with Ada.Text_IO;  use Ada.Text_IO;

procedure Goodbye_World is
begin
   Put_Line (Standard_Error, "Goodbye, World!");
end Goodbye_World;

Agena

io.write( io.stderr, "Goodbye, World!\n" )

Aime

v_text("Goodbye, World!\n");

ALGOL 68

The procedures print and printf output to stand out, whereas put and putf can output to any open file, including stand error.

Works with: ALGOL 68 version Revision 1 - no extensions to language used
Works with: ALGOL 68G version Any - tested with release 1.18.0-9h.tiny
Works with: ELLA ALGOL 68 version Any (with appropriate job cards) - tested with release 1.8-8d - note that printf and putf were not ported into ELLA's libraries.
main:(
  put(stand error, ("Goodbye, World!", new line))
)
Output:
Goodbye, World!

Argile

use std
eprint "Goodbye, World!"

or

use std
eprintf "Goodbye, World!\n"

or

use std
fprintf stderr "Goodbye, World!\n"

ARM Assembly

Works with: as version Raspberry Pi
/* ARM assembly Raspberry PI  */
/*  program hellowordLP.s   */
.data
szMessage: .asciz "Goodbye world. \n "       @ error message
.equ LGMESSAGE, . -  szMessage  @ compute length of message

.text
.global main 
main:	
    mov r0, #2                  @ output error linux
    ldr r1, iAdrMessage         @ adresse of message
    mov r2, #LGMESSAGE          @ sizeof(message) 
    mov r7, #4                  @ select system call 'write' 
    swi #0                      @ perform the system call 
 
    mov r0, #0                  @ return code
    mov r7, #1                  @ request to exit program
    swi #0                       @ perform the system call
iAdrMessage: .int szMessage

Arturo

panic "Goodbye, World!"

ATS

implement main0 () = fprint (stderr_ref, "Goodbye, World!\n")

AutoHotkey

requires AutoHotkey_N implementation.

; c:\>  autohotkey.exe stderr.ahk 2> error.txt
FileAppend, Goodbye`, World!, stderr   ; requires AutoHotkey_N

Or with the current AutoHotkey_L:

Works with: AutoHotkey_L

(documentation on this behavior: http://www.autohotkey.net/~Lexikos/AutoHotkey_L/docs/commands/FileAppend.htm)

FileAppend, Goodbye`, World!, *

AutoIt

ConsoleWriteError("Goodbye, World!" & @CRLF)

Avail

Error: "Goodbye, World!";

AWK

To print a message to standard error, pipe it through a shell command:

BEGIN {
  print "Goodbye, World!"| "cat 1>&2"
}

Or write to /dev/stderr:

Works with: gawk
Works with: mawk
Works with: nawk
BEGIN {
  print "Goodbye, World!" > "/dev/stderr"
}

With gawk, mawk and nawk: a special feature associates "/dev/stderr" with standard error. The manuals of gawk and mawk describe this feature; nawk also has this feature.

Other implementations might try to open /dev/stderr as a file. Some Unix clones, like BSD, have a /dev/stderr device node that duplicates standard error, so this code would still work. Some systems have no such device node, so this code would fail. We recommend "cat 1>&2", which is more portable, and works with any Unix clone.

BASIC

Applesoft BASIC

REM FILE-BASED OUTPUT REDIRECTION
 0 D$ =  CHR$ (4):F$ = "DEV/STDERR": PRINT D$"OPEN"F$: PRINT D$"CLOSE"F$: PRINT D$"APPEND"F$: PRINT D$"WRITE"F$
 1  PRINT "GOODBYE, WORLD!"
 2  PRINT D$"CLOSE"F$
REM OUTPUT ROUTINE REDIRECTION
 3  FOR I = 768 TO 802: READ B: POKE I,B: NEXT : POKE 54,0: POKE 55,3: CALL 1002: DATA 72,173,34,3,208,8,169,191,141,34,3,32,240,253,104,201,141,208,12,169,0,141,34,3,169,135,32,240,253,169,141,76,240,253,0
 4 O$ =  CHR$ (111):D$ =  CHR$ (100): PRINT "G" + O$ + O$ + D$ +  CHR$ (98) +  CHR$ (121) +  CHR$ (101) + ", W" + O$ +  CHR$ (114) +  CHR$ (108) + D$ + "!"
 5  POKE 54,240: POKE 55,253: CALL 1002

BaCon

EPRINT "Goodbye, World!"

BASIC256

onerror errortrap
throwerror 99
end

errortrap:
print "Goodbye World!"
return

Chipmunk Basic

Works with: Chipmunk Basic version 3.6.4
10 cls
20 on error goto 50
30 error 99 : we force an error
40 end
50 rem ManejoErrores
60 print "Goodbye World!"
70 cont

QBasic

ON ERROR GOTO ManejoErrores
ERROR 99
END

ManejoErrores:
  PRINT "Googbye World!"
  RESUME

ZX Spectrum Basic

On the ZX Spectrum, standard error is on stream 1:

10 PRINT #1;"Goodbye, World!"
20 PAUSE 50: REM allow time for the user to see the error message

Batch File

1>&2 echo Goodbye, World!

The redirection operator 1>&2 causes all output on stream 1 (standard out) to be redirected to stream 2 (standard error). The redirection can be moved to the end of the line, too.

BBC BASIC

The program must be compiled as a console application for this to work.

      STD_ERROR_HANDLE = -12
      SYS "GetStdHandle", STD_ERROR_HANDLE TO @hfile%(1)
      PRINT #13, "Goodbye, World!"
      QUIT

Blade

import io
io.stderr.write('Goodbye, World!')

C

Unlike puts(), fputs() does not append a terminal newline.

#include <stdio.h>

int main()
{
	fprintf(stderr, "Goodbye, ");
	fputs("World!\n", stderr);

	return 0;
}

C#

static class StdErr
{
    static void Main(string[] args)
    {
        Console.Error.WriteLine("Goodbye, World!");
    }
}

C++

#include <iostream>

int main() {
  std::cerr << "Goodbye, World!\n";
}

Clojure

(binding [*out* *err*]
  (println "Goodbye, world!"))

CLU

start_up = proc ()
    stream$putl(stream$error_output(), "Goodbye, World!")
end start_up

CMake

Most messages go to standard error.

message("Goodbye, World!")

The message cannot be a keyword; message("STATUS") never prints "STATUS", but message("" "STATUS") does work.

COBOL

Using fixed format.

Works with: OpenCOBOL
	program-id. ehello.
	procedure division.
		display "Goodbye, world!"  upon syserr.
		stop run.

CoffeeScript

Translation of: JavaScript
Works with: Node.js
console.warn "Goodbye, World!"

Common Lisp

(format *error-output* "Goodbye, world!~%")

D

import std.stdio;

void main () {
    stderr.writeln("Goodbye, World!");
}

Alternative Version

Library: tango
import tango.io.Stdout;

void main () {
    Stderr("Goodbye, World!").newline;
}

Dart

import 'dart:io';

void main() {
  stderr.writeln('Goodbye, World!');
}

Delphi

program Project1;

{$APPTYPE CONSOLE}

begin
  WriteLn(ErrOutput, 'Goodbye, World!');
end.

dt

"Goodbye, World!" epl

Dylan.NET

Works with: Mono version 2.6.7
Works with: Mono version 2.10.x
Works with: Mono version 3.x.y
Works with: .NET version 3.5
Works with: .NET version 4.0
Works with: .NET version 4.5

One Line version:

Console::get_Error()::WriteLine("Goodbye World!")

Goodbye World Program:

//compile using the new dylan.NET v, 11.5.1.2 or later
//use mono to run the compiler
#refstdasm mscorlib.dll

import System

assembly stderrex exe
ver 1.1.0.0

class public Program

   method public static void main()
      Console::get_Error()::WriteLine("Goodbye World!")
   end method

end class

Déjà Vu

!write-fragment!stderr !encode!utf-8 "Goodbye, World!\n"

E

stderr.println("Goodbye, World!")

Elixir

IO.puts :stderr, "Goodbye, World!"

Emacs Lisp

In batch mode, message actually prints to standard error:

(message "Goodbye, World!")

For greater control, princ can be used with a special printing function:

(princ "Goodbye, World!\n" 'external-debugging-output)

EMal

logLine("Goodbye, World!")
log("Goodbye, World!")

Erlang

io:put_chars(standard_error, "Goodbye, World!\n").

Euphoria

puts(2,"Goodbye, world!\n") -- 2 means output to 'standard error'

F#

eprintfn "%s" "Goodbye, World!"

or you can use the .Net classes

System.Console.Error.WriteLine("Goodbye, World!");

Factor

Start Factor in a terminal for this:

error-stream get [ "Goodbye, World! bbl, crashing" print flush ] with-output-stream*

Fantom

class Main
{
  public static Void main ()
  {
    Env.cur.err.printLine ("Goodbye, World!")
  }
}

Forth

Works with: GNU Forth
outfile-id
  stderr to outfile-id
  ." Goodbye, World!" cr
to outfile-id

Fortran

Normally standard error is associated with the unit 0 but this could be different for different vendors. Therefore since Fortran 2003 there's an intrinsic module which defines the parameter ERROR_UNIT.

program StdErr
  ! Fortran 2003
  use iso_fortran_env

  ! in case there's no module iso_fortran_env ...
  !integer, parameter :: ERROR_UNIT = 0
  
  write (ERROR_UNIT, *) "Goodbye, World!"
end program StdErr

FreeBASIC

' FB 1.05.0 Win64

Open Err As #1
Print #1, "Goodbye World!"
Close #1
Sleep

Frink

staticJava["java.lang.System","err"].println["Goodbye, World!"]

Genie

[indent=4]
/*
  Hello, to Standard error, in Genie
  valac helloStderr.gs
*/

init
    stderr.printf("%s\n", "Goodbye, World!")
Output:
prompt$ ./helloStderr | wc
Goodbye, World!
      0       0       0

Go

Built in println now goes to stderr.

package main
func main() { println("Goodbye, World!") }

but the builtin print() and println() functions are not guaranteed to stay in the language. So you should probably use

package main
import ("fmt"; "os")
func main() { fmt.Fprintln(os.Stderr, "Goodbye, World!") }

Groovy

System.err.println("Goodbye, World!")

Haskell

import System.IO
main = hPutStrLn stderr "Goodbye, World!"

Huginn

#! /bin/sh
exec huginn --no-argv -E "${0}" "${@}"
#! huginn

import OperatingSystem as os;

main() {
	os.stderr().write( "Goodbye, World!\n" );
	return ( 0 );
}

Icon and Unicon

procedure main()
  write(&errout, "Goodbye World" )
end

J

   stderr
1!:2&5

   0 0 $ stderr 'Goodbye, World!'

Java

public class Err{
   public static void main(String[] args){
      System.err.println("Goodbye, World!");
   }
}

JavaScript

Works with: JScript

and only with cscript.exe

WScript.StdErr.WriteLine("Goodbye, World!");
Works with: Node.js
console.warn("Goodbye, World!")
Works with: Firefox
console.error("Goodbye, World!")//only works if console object exists

OR

throw new Error("Goodbye, World!")//Should work in any browser

Joy

stderr "Goodbye, World!\n" fputchars pop.

jq

jq -n —-arg s 'Goodbye, World!' '$s | stderr | empty'

`stderr` copies its input to STDERR before passing it along the pipeline, and hence the occurrence of `empty` above.

Julia

Julia 0.7 or newer:

println(stderr, "Goodbye, World!")

In versions prior to Julia 0.7, the standard I/O streams were capitalized:

println(STDERR, "Goodbye, World!")

Kotlin

fun main(args: Array<String>) {
    System.err.println("Goodbye, World!")
}

Lang

fn.errorln(Goodbye, World!)

langur

writelnErr "Goodbye, world."

Lasso

define stderr(s::string) => {
    file_stderr->writeBytes(#s->asBytes)
}

stderr('Goodbye, World!')

Lingo

  • Windows:
-- print to standard error
stdErr("Goodbye, World!", TRUE)

-- print to the Windows debug console (shown in realtime e.g. in Systernal's DebugView)
dbgPrint("Goodbye, World!")
  • Mac OS X:
Library: Shell Xtra
sx = xtra("Shell").new()

-- print to standard error
sx.shell_cmd("echo Goodbye, World!>&2")

-- print to system.log (shown in realtime e.g. in Konsole.app)
sx.shell_cmd("logger Goodbye, World!")

Lean

In lean4

def main : IO Unit := do
  let stderr ← IO.getStderr
  stderr.putStrLn s!"Goodbye, World!"

LLVM

; This is not strictly LLVM, as it uses the C library function "printf".
; LLVM does not provide a way to print values, so the alternative would be
; to just load the string into memory, and that would be boring.

; Additional comments have been inserted, as well as changes made from the output produced by clang such as putting more meaningful labels for the jumps

%struct._iobuf = type { i8* }

$"message" = comdat any
@"message" = linkonce_odr unnamed_addr constant [17 x i8] c"Goodbye, world!\0A\00", comdat, align 1

;-- For discovering stderr (io pipe 2)
declare %struct._iobuf* @__acrt_iob_func(i32)

;--- The declaration for the external C fprintf function.
declare i32 @fprintf(%struct._iobuf*, i8*, ...)

define i32 @main() {
;-- load stderr
  %1 = call %struct._iobuf* @__acrt_iob_func(i32 2)
;-- print the message to stderr with fprintf
  %2 = call i32 (%struct._iobuf*, i8*, ...) @fprintf(%struct._iobuf* %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @"message", i32 0, i32 0))
;-- exit
  ret i32 0
}
Output:
Goodbye, world!

Logtalk

The stream alias "user_error" can be used to print to the "standard error" stream.

:- object(error_message).

    % the initialization/1 directive argument is automatically executed
    % when the object is compiled and loaded into memory:
    :- initialization(write(user_error, 'Goodbye, World!\n')).

:- end_object.

Lua

io.stderr:write("Goodbye, World!\n")

m4

errprint(`Goodbye, World!
')dnl

MANOOL

{{extern "manool.org.18/std/0.3/all"} in Err.WriteLine["Goodbye, World!"]}

Maple

error "Goodbye World"

Mathematica / Wolfram Language

Write[Streams["stderr"], "Goodbye, World!"]

MATLAB / Octave

This prints to standard error, and continues execution

fprintf(2,'Goodbye, World!')

This will not stop further execution, if called from within a script or function.

error 'Goodbye, World!'

Mercury

:- module hello_error.
:- interface.

:- import_module io.
:- pred main(io::di, io::uo) is det.

:- implementation.

main(!IO) :-
    io.stderr_stream(Stderr, !IO),
    io.write_string(Stderr, "Goodbye, World!\n", !IO).

Metafont

Metafont has no a real way to send a text to the standard output/error nor to a file. Anyway it exists the errmessage command which will output an error message and prompt the user for action (suspending the interpretation of the source).

errmessage "Error";
message "...going on..."; % if the user decides to go on and not to stop
                          % the program because of the error.

min

Works with: min version 0.37.0

Currently, min has three possibilities for outputting to stderr:

"Goodbye, World!" warn!
"Goodbye, World!" error!
"Goodbye, World!" fatal!

The first two depend on the current log level (and are enabled by default). The last one additionally terminates the program.

ML/I

MCSET S4=1
MCNOTE Goodbye, World!

Miranda

main :: [sys_message]
main = [Stderr "Hello, world!\n"]

Modula-2

MODULE HelloErr;
IMPORT StdError;

BEGIN
  StdError.WriteString('Goodbye, World!');
  StdError.WriteLn
END HelloErr.

Modula-3

MODULE Stderr EXPORTS Main;

IMPORT Wr, Stdio;

BEGIN
  Wr.PutText(Stdio.stderr, "Goodbye, World!\n");
END Stderr.

N/t/roff

The request .tm prints whatever after it, until and including the newline character, to the standard error. The string parsed to it need not be quoted and will never appear on standard output.

.tm Goodbye, World!

Neko

/**
  Hello world, to standard error, in Neko
  Tectonics:
    nekoc hello-stderr.neko
    neko hello-stderr
*/

/* Assume stderr is already open, just need write */
var file_write = $loader.loadprim("std@file_write", 4);

/* Load (and execute) the file_stderr primitive */
var stderr = $loader.loadprim("std@file_stderr", 0)();

file_write(stderr, "Goodbye, World!\n", 0, 16);
Output:
prompt$ nekoc hello-stderr.neko
prompt$ neko hello-stderr
Goodbye, World!
prompt$ neko hello-stderr 2>/dev/null
prompt$

Nemerle

System.Console.Error.WriteLine("Goodbye, World!");

NetRexx

/* NetRexx */

options replace format comments java crossref savelog symbols binary

System.err.println("Goodbye, World!")

Nim

stderr.writeLine "Hello World"

Nu

print -e "Goodbye, World!"

Oberon-2

Oxford Oberon-2

MODULE HelloErr;
IMPORT Err;
BEGIN
	Err.String("Goodbye, World!");Err.Ln
END HelloErr.
Output:
Goodbye, World!

Objective-C

Works with: GNUstep
Works with: Cocoa

In Objective-C one can use the standard C library and the stderr as in the C language; nonetheless a common way to output to stderr for logging purpose and/or error notification is the NSLog function, that works almost like fprintf(stderr, "..."), save for the fact that the format string is an NSString object, and it also prepends a timestamp.

#import <Foundation/Foundation.h>

int main()
{
   fprintf(stderr, "Goodbye, World!\n");
   fputs("Goodbye, World!\n", stderr);
   NSLog(@"Goodbye, World!");
   return 0;
}

OCaml

prerr_endline "Goodbye, World!";    (* this is how you print a string with newline to stderr *)
Printf.eprintf "Goodbye, World!\n"; (* this is how you would use printf with stderr *)

we can also use the out_channel stderr:

output_string stderr "Goodbye, World!\n";
Printf.fprintf stderr "Goodbye, World!\n";

finally the Unix module also provides unbuffered write functions:

let msg = "Goodbye, World!\n" in
ignore(Unix.write Unix.stderr msg 0 (String.length msg)) ;;

Octave

fprintf(stderr, "Goodbye, World!\n");

Oforth

System.Err "Goodbye, World!" << cr

Ol

(print-to stderr "Goodbye, World!")

ooRexx

ooRexx provides a .error object that writes output to the standard error stream.

.error~lineout("Goodbye, World!")

The .error object is a proxy that delegates to a backing stream, so this might be redirected. By default, this delegates to the .stderr object, which can also be used directly.

.stderr~lineout("Goodbye, World!")

or in 'Classic REXX style'

/* REXX ---------------------------------------------------------------
* 07.07.2014 Walter Pachl
* 12.07.2014 WP see Discussion where redirection from within the program is shown
*--------------------------------------------------------------------*/
Say 'rexx serr 2>err.txt directs the stderr output to the file err.txt'
Call lineout 'stderr','Good bye, world!'
Call lineout ,'Hello, world!'
Say 'and this is the error output:'
'type err.txt'

Oz

functor
import Application System
define
   {System.showError "Goodbye, World!"}
   {Application.exit 0}
end

PARI/GP

error("Goodbye, World!")

Pascal

Works with: Free Pascal
program byeworld;
 
begin
  writeln(StdErr, 'Goodbye, World!');
end.

Perl

warn "Goodbye, World!\n";

Or:

print STDERR "Goodbye, World!\n";

Phix

puts(2,"Goodbye, World!")

PHP

fprintf(STDERR, "Goodbye, World!\n");

or

file_put_contents("php://stderr","Hello World!\n");

Picat

println(stderr,"Goodbye, World!")

PicoLisp

(out 2 (prinl "Goodbye, World!"))

Pike

werror("Goodbye, World!");

PL/I

display ('Goodbye, World');

PostScript

(%stderr) (w) file dup
(Goodbye, World!
) writestring
closefile

PowerBASIC

STDERR "Goodbye, World!"

PowerShell

Since PowerShell has a slightly different system of pipes and streams (to facilitate easy usage from a host application) the standard Write-Error cmdlet is mainly for sending annotated error messages to the host:

Write-Error "Goodbye, World!"

Note that this outputs more than just the message, because behind the scenes it is an uncaught exception:

Write-Error "Goodbye, World!" : Goodbye, World!
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

To accurately reproduce the behavior of other languages one has to resort to .NET in this case:

[Console]::Error.WriteLine("Goodbye, World!")

PureBasic

ConsoleError() writes the message string (plus a newline) to the standard error output of current program.

Standard error output can be used in conjunction with ReadProgramError() to reads a line from an other programs error output (stderr).

ConsoleError("Goodbye, World!")

Python

Works with: Python version 2.x
import sys

print >> sys.stderr, "Goodbye, World!"
Works with: Python version 3.x
import sys

print("Goodbye, World!", file=sys.stderr)

Works with either:

import sys

sys.stderr.write("Goodbye, World!\n")

R

cat("Goodbye, World!", file=stderr())

Ra

class HelloWorld
	**Prints "Goodbye, World!" to standard error**

	on start

		print to Console.error made !, "Goodbye, World!"

Racket

(eprintf "Goodbye, World!\n")

Raku

(formerly Perl 6)

note "Goodbye, World!";

Retro

'Goodbye,_World! '/dev/stderr file:spew

REXX

version 1

This version will work with those operating systems (hosts) that support stream output and a STDERR output
stream (by name).
If the   stderr   name is supported and enabled, the output is written to the terminal.
If not supported or disabled, the output is written to a (disk) file named   STDERR.

call lineout 'STDERR', "Goodbye, World!"

version 2

Same as above, but uses a different style and also invokes   charout   instead of   lineout.

msgText = 'Goodbye, World!'
call charout 'STDERR', msgText

version 3

This works on Windows 7 and ooRexx and REGINA

/* REXX ---------------------------------------------------------------
* 07.07.2014 Walter Pachl
* enter the appropriate command shown in a command prompt.
*    "rexx serr.rex 2>err.txt"
* or "regina serr.rex 2>err.txt" 
* 2>file will redirect the stderr stream to the specified file. 
* I don't know any other way to catch this stream
*--------------------------------------------------------------------*/
Parse Version v
Say v
Call lineout 'stderr','Good bye, world!'
Call lineout ,'Hello, world!'
Say 'and this is the error output:'
'type err.txt'

version 4

ARexx with tracing console

/**/
Address command tco
Call writeln stderr,'Good bye, world!'
Call writeln stdout,'Hello, world!'

Ring

fputs(stderr,"Goodbye, World!")

RPL

There is no error console in RPL but all error messages are displayed at the top two lines of the display, which freezes until a key is pressed. This can be mimicked with the DISP instruction:

≪ "Hello world!" 1 DISP ≫

Ruby

STDERR.puts "Goodbye, World!"

The following also works, unless you have disabled warnings (ruby command line option "-W0" or set $VERBOSE=nil)

warn "Goodbye, World!"

Run BASIC

html "<script>
window.open('','error_msg','');
document.write('Goodbye, World!');
</script>""

Run Basic runs in a browser. This opens a new browser window, or a tab in the case of Chrome and some others.

Rust

fn main() {
    eprintln!("Hello, {}!", "world");
}

or

fn main() {
    use ::std::io::Write;
    let (stderr, errmsg) = (&mut ::std::io::stderr(), "Error writing to stderr");
    writeln!(stderr, "Bye, world!").expect(errmsg);
    
    let (goodbye, world) = ("Goodbye", "world");
    writeln!(stderr, "{}, {}!", goodbye, world).expect(errmsg);
}

or

fn main() {
    use std::io::{self, Write};

    io::stderr().write(b"Goodbye, world!").expect("Could not write to stderr");
    // With some finagling, you can do a formatted string here as well
    let goodbye = "Goodbye";
    let world = "world";
    io::stderr().write(&*format!("{}, {}!", goodbye, world).as_bytes()).expect("Could not write to stderr");
    // Clearly, if you want formatted strings there's no reason not to just use writeln!
}

S-lang

() = fputs("Goodbye, World!\n", stderr);

Salmon

standard_error.print("Goodbye, World!\n");

or

include "short.salm";
stderr.print("Goodbye, World!\n");

or

include "shorter.salm";
err.print("Goodbye, World!\n");

or

include "shorter.salm";
se.print("Goodbye, World!\n");

Sather

class MAIN is
  main is
    #ERR + "Hello World!\n";
  end;
end;

Scala

Library: Console

Ad hoc REPL solution

Ad hoc solution as REPL script:

Console.err.println("Goodbye, World!")

Via Java runtime

This is a call to the Java run-time library. Not recommendated.

System.err.println("Goodbye, World!")

Via Scala Console API

This is a call to the Scala API. Recommendated.

Console.err.println("Goodbye, World!")

Short term deviation to err

Console.withOut(Console.err) { println("This goes to default _err_") }

Long term deviation to err

  println ("Out not deviated")
  Console.setOut(Console.err)
  println ("Out deviated")
  Console.setOut(Console.out) // Reset to normal

Scheme

(error "Goodbye, World!")

Scilab

error("Goodbye, World!")

sed

Requires /dev/stderr

#n
1 {
	s/.*/Goodbye, World!/w /dev/stderr
}

This program requires at least 1 line of input. It changes the first line to "Goodbye, World!" and then prints the first line to standard error. It reads and ignores the remaining lines.

Test output:
$ echo a | sed -f error.sed >/dev/null
Goodbye, World!

Seed7

$ include "seed7_05.s7i";

const proc: main is func
  begin
    writeln(STD_ERR, "Goodbye, World!");
  end func;

Sidef

STDERR.println("Goodbye, World!");

Slate

inform: 'Goodbye, World!' &target: DebugConsole.

Slope

(write "Goodbye, world!" stderr)

Smalltalk

The details on to which name stderr is bound may vary between Smalltalk dialects. If different, a "Smalltalk at:#Stderr put:<name your stream here>" should provide compatibility.

Stderr nextPutAll: 'Goodbye, World!'

However, all Smalltalks provide a console named "Transcript", where diagnostics is usually sent to (which is convenient, if there is no stderr to look at, as when started in Windows as an exe, vs. a com).
Thus:

Transcript show: 'Goodbye, World!'

will work on all, and is the preferred way to do this.
(and yes, when running UI-less as a console program, the global "Transcript" is usually bound to the stderr stream).

The above tells the stream to write a string; you can also tell the string to print itself onto some stream:

'Goodbye, World!' printOn: Stderr

Both have the same effect.

SNOBOL4

        terminal = "Error"
        output = "Normal text"
end

Standard ML

TextIO.output (TextIO.stdErr, "Goodbye, World!\n")

Swift

import Foundation

let out = NSOutputStream(toFileAtPath: "/dev/stderr", append: true)
let err = "Goodbye, World!".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
out?.open()
let success = out?.write(UnsafePointer<UInt8>(err!.bytes), maxLength: err!.length)
out?.close()

if let bytes = success {
    println("\nWrote \(bytes) bytes")
}
Output:
Goodbye, World!
Wrote 15 bytes

Tcl

puts stderr "Goodbye, World!"

Transact-SQL

 RAISERROR 'Goodbye, World!', 16, 1

True BASIC

CAUSE error 1, "Goodbye World!"
END

TUSCRIPT

$$ MODE TUSCRIPT
PRINT/ERROR "hello world"
text="goodbye world"
PRINT/ERROR text
Output:
@@@@@@@@  hello world                                                  @@@@@@@@
@@@@@@@@  goodbye world                                                @@@@@@@@

UNIX Shell

Works with: Bourne Shell
echo "Goodbye, World!" >&2

C Shell

echo "Goodbye, World!" >/dev/stderr

This requires /dev/stderr, a device node from BSD and some other Unix clones. This command works with both Bourne Shell and C Shell.

Ursa

out "goodbye, world!" endl console.err

VBA

Sub StandardError()
    Debug.Print "Goodbye World!"
End Sub

VBScript

Must work in cscript.exe

WScript.StdErr.WriteLine "Goodbye, World!"

Verbexx

@STDERR "Goodbye, World!\n";

Visual Basic .NET

Module Module1

    Sub Main()
        Console.Error.WriteLine("Goodbye, World!")
    End Sub

End Module

WDTE

io.writeln io.stderr 'Goodbye, World!';

Wren

Fiber.abort("Goodbye, World!")

X86 Assembly

Works with: nasm version 2.05.01

This is known to work on Linux, it may or may not work on other Unix-like systems

Note that it is only 2 characters different from the Assembly example on User Output - text

Prints "Goodbye, World!" to stderr (and there is probably an even simpler version):

section .data
msg     db      'Goodbye, World!', 0AH
len     equ     $-msg

section .text
global  _start
_start: mov     edx, len
        mov     ecx, msg
        mov     ebx, 2
        mov     eax, 4
        int     80h

        mov     ebx, 1
        mov     eax, 1
        int     80h

XLISP

(DISPLAY "Goodbye, World!" *ERROR-OUTPUT*)

XPL0

The terms "standard output" and "standard error" are not used, but it's trivial to send messages to a variety of devices by specifying their numbers. Normally messages are displayed on the text console, which is device 0. Instead, this example sends the message to the (first) printer, which is device 2.

code Text=12;
Text(2, "Goodbye, World!")


Yabasic

error "Goodbye World!"


Zig

Works with: 0.10.x, 0.11.x, 0.12.0-dev.1357+10d03acdb

Variant with error handling:

const std = @import("std");

pub fn main() std.fs.File.WriteError!void {
    const stderr = std.io.getStdErr();

    try stderr.writeAll("Goodbye, World!\n");
}

Works with: 0.10.x, 0.11.x, 0.12.0-dev.1357+10d03acdb

Variant with no error handling (useful when debugging):

const std = @import("std");

pub fn main() void {
    // Silently returns if writing to stderr fails.
    std.debug.print("Goodbye, World!\n", .{});
}

zkl

File.stderr.writeln("Goodbye, World!")